site 영역 DB 스키마
현장(건설 사이트) 관리 영역의 Firestore 컬렉션 스키마 모음. 현장 본문, 인력/장비, 출퇴근, 작업 관리, 파일 등 가장 많은 컬렉션이 모인 영역입니다.
컬렉션 맵
companies/{company_id}/sites/{site_id} # 현장 본문
├─ members/{uid} # 현장 근로자 (worker)
├─ equipments/{equipment_id} # 현장 장비
├─ supervisor/{uid} # 현장 감독자 (owner/admin/manager + 감독자)
│
├─ attendance_logs/{log_id} # 근로자 출퇴근 로그
├─ attendance_requests/{request_id} # 근로자 출퇴근 요청
├─ equipment_attendance_logs/{log_id} # 장비 출퇴근 로그
├─ equipment_attendance_requests/{request_id} # 장비 출퇴근 요청
│
├─ membership_requests/{request_id} # 현장 입사(worker) 요청
├─ change_requests/{request_id} # 근로자 현장 변경 요청
├─ equipment_assign_requests/{request_id} # 장비 배정 요청
├─ equipment_change_requests/{request_id} # 장비 현장 변경 요청
│
├─ tasks/{task_id} # 일별 작업 → tasks.md
│ ├─ risk_assessment/{id} # 작업 위험성 평가 (TBM)
│ ├─ material_usage/{id} # 자재 일일 사용량
│ ├─ waste_amount/{id} # 폐기물 일일 배출량
│ ├─ memo/{id} # 특이사항 메모
│ └─ attendance/{supervisor|worker|equipment} # 작업별 출석 집계 문서
├─ waste/{waste_id} # 폐기물 품목 마스터 → waste.md
├─ material/{material_id} # 자재 품목 마스터 → material.md
│
├─ files/{file_id} # 현장 관련 파일 메타 → system/_schema/files.md 참조
├─ folders/{folder_id} # 드라이브 폴더
│
├─ labor_ledger/{YYYYMM} # 노임대장 월별 → finance/_schema/labor_ledger.md 참조
├─ dashboard/{YYYYMM} # 작업 월별 대시보드 → dashboard.md
├─ task_summary/{YYYYMM} # 자재/폐기물 월별 집계 → task_summary.md
│
└─ suspension_works/{id} # 작업 중지권 → safety/_schema/suspension_work.md 참조
문서 목록
현장 본문 / 소속
| 컬렉션 | 스키마 문서 | 설명 |
|---|---|---|
sites/{sid} |
sites.md | 현장 본문 (이름/위치/상태/감독자/레이아웃 등) |
sites/{sid}/members/{uid} |
members.md | 현장 근로자 (worker) |
작업 관리
| 컬렉션 | 스키마 문서 | 설명 |
|---|---|---|
sites/{sid}/tasks/{tid} |
tasks.md | 일별 작업 마스터 + 하위 서브컬렉션(위험성 평가/자재/폐기물/메모/attendance) |
sites/{sid}/material/{mid} |
material.md | 자재 품목 마스터 (작업 일지용) |
sites/{sid}/waste/{wid} |
waste.md | 폐기물 품목 마스터 |
sites/{sid}/dashboard/{YYYYMM} |
dashboard.md | 월별 작업 수 대시보드 |
sites/{sid}/task_summary/{YYYYMM} |
task_summary.md | 자재/폐기물 월별 사용량 집계 |
미작성(코드 기반 TBD) — 우선순위 높음
아래 컬렉션은 엔드포인트가 존재하고 실제 데이터가 쌓이는 핵심 컬렉션이지만, 별도 스키마 문서가 아직 작성되지 않았습니다. 필요 시 소스 코드(functions/con24/site/...)에서 필드를 직접 확인해주세요.
| 컬렉션 | 참고 소스 | 비고 |
|---|---|---|
sites/{sid}/equipments/{eid} |
con24/site/HR/equipment_assign.py |
현장 장비 (장비대 연결, finance/_schema/equipment_cost.md 와 공유) |
sites/{sid}/supervisor/{uid} |
con24/company/supervisor/ |
현장 감독자 (owner/admin/manager + 감독자 role) |
sites/{sid}/attendance_logs/{id} |
con24/site/attendence/worker_attendance.py |
근로자 출퇴근 로그 |
sites/{sid}/attendance_requests/{id} |
con24/site/attendence/worker_attendance.py |
근로자 출퇴근 요청 (pending 상태) |
sites/{sid}/equipment_attendance_logs/{id} |
con24/site/attendence/equipment_attendance.py |
장비 출퇴근 로그 |
sites/{sid}/equipment_attendance_requests/{id} |
con24/site/attendence/equipment_attendance.py |
장비 출퇴근 요청 |
sites/{sid}/membership_requests/{id} |
con24/site/HR/worker_assign.py |
현장 입사 요청 |
sites/{sid}/change_requests/{id} |
con24/site/HR/worker_site_change.py |
근로자 현장 변경 요청 |
sites/{sid}/equipment_assign_requests/{id} |
con24/site/HR/equipment_assign.py |
장비 배정 요청 |
sites/{sid}/equipment_change_requests/{id} |
con24/site/HR/equipment_site_change.py |
장비 현장 변경 요청 |
sites/{sid}/folders/{id} |
con24/site/drive_folder.py |
드라이브 폴더 트리 |
상태 흐름 요약
현장 상태
현장이 deactivate가 되면 pending 요청들이 자동 거절되고, complete가 되면 미완결 출퇴근 로그가 정리되며 모든 멤버가 자동 퇴사됩니다. 자세한 내용은 sites.md의 상태 흐름 섹션 참조.
근로자 입사/배정 흐름
site_assign_request → membership_requests(status=pending)
↓ approval
members/{uid} 생성 + users/{uid}/membership/{cid}_{sid} 생성 + request 삭제
출퇴근 흐름
check_in_request → attendance_requests(status=pending, type=check_in)
↓ approval
attendance_logs(status=approved, type=check_in) + request 삭제
check_out_request → attendance_requests(status=pending, type=check_out)
↓ approval
attendance_logs(status=approved, type=check_out, link=check_in_log_id) + 상대 로그 link 업데이트
admin_check_out, add_attendance_log는 request 단계를 건너뛰고 바로 로그 기록.
장비 배정/해제/현장 변경
근로자와 동일한 패턴이되 equipment_* 접두가 붙습니다. 각 요청 타입은 별도 컬렉션에 저장되어 한 화면에서 필터링 가능.
다른 영역과의 관계
- common: 현장 입사/장비 배정 승인 시
users/{uid}/membership생성. common/_schema/membership.md - company: 현장은 회사 하위이며
companies/{cid}본문/감독자/설정과 참조 관계. company/_schema/README.md - finance:
labor_ledger/{YYYYMM},equipments/{eid}/contracts,equipments/{eid}/attendance등 재무 월별 집계는 finance/_schema/README.md 참조. - safety:
suspension_works/{id}, 위험성 평가(tasks/{tid}/details일부)는 safety/_schema/README.md. - system:
files/{id}는 전 서비스 공통 파일 메타. system/_schema/files.md.