feat: 완료 신청 API 엔드포인트 구현
🔧 백엔드 API 추가: - POST /api/issues/{issue_id}/completion-request - 완료 사진 Base64 업로드 및 저장 - 완료 코멘트 저장 - 완료 신청 시간 및 신청자 기록 📊 데이터 모델 확장: - completion_requested_at: 완료 신청 시간 - completion_requested_by_id: 완료 신청자 ID - completion_photo_path: 완료 사진 경로 - completion_comment: 완료 코멘트 🛡️ 검증 로직: - 진행 중 상태만 완료 신청 가능 - 중복 완료 신청 방지 - 파일 업로드 오류 시 롤백 처리 🔄 프론트엔드 연동: - refreshDashboard() 함수 추가 - 완료 신청 후 현황판 자동 새로고침 - 오류 처리 및 사용자 피드백 Expected Result: ✅ 완료 신청 API 정상 작동 ✅ 완료 사진 업로드 및 저장 ✅ 완료 대기 상태로 변경 ✅ 404 오류 해결
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -138,6 +138,12 @@ class Issue(Base):
|
||||
additional_info_updated_at = Column(DateTime) # 추가 정보 입력 시간
|
||||
additional_info_updated_by_id = Column(Integer, ForeignKey("users.id")) # 추가 정보 입력자
|
||||
|
||||
# 완료 신청 관련 필드들
|
||||
completion_requested_at = Column(DateTime) # 완료 신청 시간
|
||||
completion_requested_by_id = Column(Integer, ForeignKey("users.id")) # 완료 신청자
|
||||
completion_photo_path = Column(String(500)) # 완료 사진 경로
|
||||
completion_comment = Column(Text) # 완료 코멘트
|
||||
|
||||
# Relationships
|
||||
reporter = relationship("User", back_populates="issues", foreign_keys=[reporter_id])
|
||||
reviewer = relationship("User", foreign_keys=[reviewed_by_id], overlaps="reviewed_issues")
|
||||
|
||||
@@ -147,6 +147,12 @@ class Issue(IssueBase):
|
||||
additional_info_updated_at: Optional[datetime] = None # 추가 정보 입력 시간
|
||||
additional_info_updated_by_id: Optional[int] = None # 추가 정보 입력자
|
||||
|
||||
# 완료 신청 관련 필드들
|
||||
completion_requested_at: Optional[datetime] = None # 완료 신청 시간
|
||||
completion_requested_by_id: Optional[int] = None # 완료 신청자
|
||||
completion_photo_path: Optional[str] = None # 완료 사진 경로
|
||||
completion_comment: Optional[str] = None # 완료 코멘트
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
@@ -189,6 +195,11 @@ class AdditionalInfoUpdateRequest(BaseModel):
|
||||
responsible_person_detail: Optional[str] = None # 해당자 상세 정보
|
||||
cause_detail: Optional[str] = None # 원인 상세 정보
|
||||
|
||||
class CompletionRequestRequest(BaseModel):
|
||||
"""완료 신청 요청"""
|
||||
completion_photo: str # 완료 사진 (Base64)
|
||||
completion_comment: Optional[str] = None # 완료 코멘트
|
||||
|
||||
class InboxIssue(BaseModel):
|
||||
"""수신함용 부적합 정보 (간소화된 버전)"""
|
||||
id: int
|
||||
|
||||
Reference in New Issue
Block a user