콘텐츠로 이동

tbm (작업 위험성 평가) 스키마

TBM(Tool Box Meeting) 용도로 사용되는 작업 단위 위험성 평가 스키마. 안전 관리의 독립 위험성 평가(risk_assessment)와 달리, 개별 작업(task) 문서 하위에 저장됩니다.

저장 위치

companies/{company_id}/sites/{site_id}/tasks/{task_id}/risk_assessment/{risk_assessment_id}

이름만 risk_assessment이지만, 실제 관리 화면에서는 TBM(작업 단위 위험성 평가)으로 사용됩니다. 안전 관리 전체 문서인 risk_assessment(risk_assessment.md)와 혼동하지 않도록 주의.

연관 문서: 근로자 의견

근로자 의견은 별도 컬렉션이 아니라 부모 작업 문서(tasks/{task_id})의 opinion 필드에 직접 저장됩니다.

companies/{cid}/sites/{sid}/tasks/{task_id}
  └─ opinion: string   (edit_task_worker_opinion 로 업데이트)

문서 필드

필드 타입 설명
place string 작업 장소
supervisor_name string 담당자 (감독자) 이름
type string 공종
work string 세부 작업명
danger_level string 위험도 등급 ("상" | "중" | "하")
frequency string 발생빈도 ("상" | "중" | "하")
source string 유해·위험 요인
preventive_measures string 예방 대책
created_at timestamp 생성 시각
created_by string 작성자 UID

빈도/위험도는 문자열 등급(상/중/하)입니다. 숫자 기반의 risk_assessment items와 형식이 다릅니다.

항목 복사 (이전 작업에서)

_copy_task_risk_assessment_from_previous 호출 시:

  1. 현재 작업의 created_at 기준, 같은 현장에서 그 이전에 작성된 가장 최근 작업 1건을 찾음
  2. 해당 작업의 risk_assessment 서브컬렉션 전체를 현재 작업으로 복사
  3. 복사 시 created_at / created_by는 복사 시점의 값으로 재설정, 나머지 필드는 그대로 유지

복사할 이전 작업이 없거나 이전 작업에 평가가 없으면 VALIDATION_011 에러.

권한

  • 추가/수정/삭제/복사 모두 check_company_permission으로 회사 관리자(owner/admin/manager) 권한 필요.

예시 문서

// tasks/{task_id}/risk_assessment/{id}
{
  "place": "A동 3층",
  "supervisor_name": "박감독",
  "type": "철근공사",
  "work": "배근 작업",
  "danger_level": "중",
  "frequency": "중",
  "source": "철근 날카로운 단면에 의한 베임",
  "preventive_measures": "작업용 장갑 착용, 단부 보호캡 사용",
  "created_at": "2026-04-20T08:00:00Z",
  "created_by": "uid_manager"
}

// 부모 task 문서
{
  "task_name": "3층 배근 작업",
  "opinion": "오전에 비 예보 있어 동바리 고정 재확인 필요"
}