2025-05-04 공사구분 필수 해제 및 접수 플로우 수정
2025-05-04 공사구분 필수 해제 및 접수 플로우 수정
섹션 제목: “2025-05-04 공사구분 필수 해제 및 접수 플로우 수정”[!note] 수정이력 | 2025-05-04 03:38, 분홍 (hermes)
- 공사 등록 시 공사구분(project_type) 필수 선택 → 선택 해제
- 접수 단계에서 공사구분 없이도 등록 가능하도록 백엔드 + 프론트 수정
- DB 제약 변경: projects.project_type_id NOT NULL → NULL 허용
수정 내역
섹션 제목: “수정 내역”1. 백엔드 스키마
섹션 제목: “1. 백엔드 스키마”- 파일:
backend/app/api/v1/projects.py - 변경:
ProjectCreate.project_type_id를Optional[str] = None으로 변경 (기존str필수)
2. 백엔드 생성 로직
섹션 제목: “2. 백엔드 생성 로직”- 파일:
backend/app/api/v1/projects.py함수create_project() - 변경:
data.project_type_id가 있을 때만 ProjectType 조회 및 first stage 설정. 없으면current_stage="발생",current_step="접수"기본값 유지
3. DB 제약 변경
섹션 제목: “3. DB 제약 변경”- 명령:
ALTER TABLE projects ALTER COLUMN project_type_id DROP NOT NULL - 이유: SQLAlchemy 모델은 이미
nullable=True였으나, 실제 DB 테이블에는 여전히 NOT NULL 제약이 남아 있었음 (기존 마이그레이션 미반영)
4. 프론트엔드 폼
섹션 제목: “4. 프론트엔드 폼”- 파일:
frontend/src/views/projects/ProjectCreateView.vue - 변경:
:rules="[v => !!v || ...]"→clearable(필수 해제)- label
"공사 유형"→"공사 구분"
테스트 결과
섹션 제목: “테스트 결과”| 시나리오 | 결과 |
|---|---|
| project_type_id 없이 POST /api/v1/projects | HTTP 200, project_type_id=null, file_path=TEMP_260503_55cd6271 |
| project_type_id 포함 POST | HTTP 200, project_type_id=“4149…316” 정상 |
| NAS 10개 하위폴더 생성 | /mnt/y/…/TEMP_…/ 아래 10개 폴더 확인 완료 |
다음 단계 (미예정)
섹션 제목: “다음 단계 (미예정)”- 공사관리 상단 단계/승인상태 UI 수정 (사용자 요청 보류 중)
- 실사자료등록 화면 노출 플로우 설계 (접수→실사 단계)