🎯 진행 상태 4단계 세분화: - 진행 중 (파란색): 일반적인 진행 상태 - 긴급 (주황색): 마감 3일 이내 - 지연됨 (빨간색): 마감시간 초과 - 완료 대기 (보라색): 완료 신청 후 승인 대기 🔧 상태 판별 로직: - 마감시간 기준 자동 상태 변경 - completion_requested_at 필드로 완료 대기 상태 판별 - 각 상태별 고유 색상, 아이콘, 텍스트 📱 완료 신청 기능: - 마감시간 카드 우하단에 '완료신청' 버튼 - 완료 사진 업로드 (필수, 5MB 제한) - 완료 코멘트 입력 (선택사항) - 실시간 이미지 미리보기 🗄️ DB 구조 확장: - completion_requested_at: 완료 신청 시간 - completion_requested_by_id: 신청자 ID - completion_photo_path: 완료 사진 경로 - completion_comment: 완료 코멘트 🎨 UI/UX 개선: - 상태별 그라데이션 배경색 - 애니메이션 아이콘 (톱니바퀴, 경고, 시계 등) - 드래그 앤 드롭 사진 업로드 - 모달 기반 완료 신청 폼 💡 워크플로우: 1. 담당자가 작업 완료 후 '완료신청' 클릭 2. 완료 사진과 코멘트 업로드 3. 상태가 '완료 대기'로 변경 4. 관리자 승인 후 '완료됨'으로 최종 처리 🔐 보안 및 검증: - 이미지 파일 타입 검증 - 파일 크기 제한 (5MB) - Base64 인코딩으로 안전한 전송 - 사용자 인증 및 권한 확인 Expected Result: ✅ 진행 상황을 한눈에 파악 가능한 색상 코딩 ✅ 마감 관리 자동화 (긴급/지연 상태) ✅ 완료 신청 프로세스로 품질 관리 강화 ✅ 직관적인 UI로 사용자 경험 향상
38 lines
1.9 KiB
SQL
38 lines
1.9 KiB
SQL
-- 완료 신청 관련 필드 추가
|
|
-- 마이그레이션: 019_add_completion_request_fields.sql
|
|
|
|
DO $$
|
|
BEGIN
|
|
-- 완료 신청 관련 필드들 추가
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_requested_at') THEN
|
|
ALTER TABLE issues ADD COLUMN completion_requested_at TIMESTAMP WITH TIME ZONE;
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_requested_by_id') THEN
|
|
ALTER TABLE issues ADD COLUMN completion_requested_by_id INTEGER REFERENCES users(id);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_photo_path') THEN
|
|
ALTER TABLE issues ADD COLUMN completion_photo_path VARCHAR(500);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_comment') THEN
|
|
ALTER TABLE issues ADD COLUMN completion_comment TEXT;
|
|
END IF;
|
|
|
|
-- 마이그레이션 로그 기록
|
|
INSERT INTO migration_log (migration_file, executed_at, status, notes)
|
|
VALUES ('019_add_completion_request_fields.sql', NOW(), 'SUCCESS', 'Added completion request fields: completion_requested_at, completion_requested_by_id, completion_photo_path, completion_comment');
|
|
|
|
RAISE NOTICE '✅ 완료 신청 관련 필드 추가 완료';
|
|
RAISE NOTICE '📝 완료 신청 필드 마이그레이션 완료 - 019_add_completion_request_fields.sql';
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
-- 오류 발생 시 로그 기록
|
|
INSERT INTO migration_log (migration_file, executed_at, status, notes)
|
|
VALUES ('019_add_completion_request_fields.sql', NOW(), 'FAILED', 'Error: ' || SQLERRM);
|
|
|
|
RAISE EXCEPTION '❌ 마이그레이션 실패: %', SQLERRM;
|
|
END $$;
|