users/{uid}/requests 스키마
사용자가 낸 승인 요청(회사 가입, 현장 배정, 장비 배정, 출근 요청 등)의 상태 트래킹. 회사/현장 쪽의
membership_requests/attendance_requests등과 쌍으로 관리됩니다.
저장 위치
request_id는 자동 생성되는 Firestore document ID입니다.
상태 흐름
pending: 요청 등록 직후 기본 상태approved: 회사/현장 관리자가 승인함rejected: 관리자가 거절 또는 요청자가 취소
사용자는 같은 request_type + status=pending인 요청을 중복 생성할 수 없습니다 (코드에서 선검사).
공통 문서 필드
| 필드 | 타입 | 설명 |
|---|---|---|
target_name |
string | 요청 대상의 표시명 (회사명, 현장명 등) |
target_id |
string | 요청 대상 문서 ID (company_id 또는 site_id 등) |
request_path |
string? | 회사/현장 쪽 요청 문서의 컬렉션 경로 (예: companies/{cid}/membership_requests). 취소 시 역조회에 사용 |
request_type |
string | 요청 종류 ENUM — 아래 참조 |
status |
string | pending | approved | rejected |
created_at |
timestamp | 요청 생성 시각 |
request_type 종류
| 값 | 생성 위치 | 비고 |
|---|---|---|
company_membership |
con24/company/assign.py |
회사 입사 요청 |
company_attendance |
con24/company/attendence.py |
회사 출근 요청 |
site_attendance |
con24/site/HR/worker_site_change.py |
현장 출근(배정) 요청 |
site_change |
con24/site/HR/worker_site_change.py |
근로자 현장 변경 요청 |
equipment_membership |
con24/site/HR/equipment_assign.py |
장비 배정 요청 |
equipment_site_change |
con24/site/HR/equipment_site_change.py |
장비 현장 변경 요청 |
출근 요청 추가 필드 (request_type=company_attendance 등, 선택)
출근 요청의 경우 attendance_request_id 등 상대 문서 ID가 포함될 수 있습니다(관련 로직은 company/attendence.py, site/HR/worker_site_change.py 참조). 본 문서는 common 파트 중심으로 정리하며, 상세한 출근 요청 스키마는 con24 파트 문서를 참고합니다.
상호 관계
- 상대 문서(
companies/{cid}/membership_requests/{req_id}등)에는 역으로user_notification_id가 저장되어 승인/거절 시 이users/{uid}/requests문서도 함께 업데이트됩니다. - 탈퇴(
withdraw) 시 이 서브컬렉션은 전체 삭제됩니다.