콘텐츠로 이동

risk_assessment 스키마

현장 단위 위험성 평가 문서와 그 하위 항목(items)의 전체 스키마. 각 엔드포인트 문서에서 참조용으로 사용합니다.

저장 위치

companies/{company_id}/sites/{site_id}/risk_assessment/{risk_assessment_id}
companies/{company_id}/sites/{site_id}/risk_assessment/{risk_assessment_id}/items/{risk_assessment_item_id}
  • 문서 1건 = 평가 회차/양식 (예: "2026년 정기 평가")
  • 문서의 하위 items 서브컬렉션에 실제 위험요인 항목들이 저장됩니다.

평가 방식 (evaluation_type)

문서 생성 시 결정되며 이후 변경 불가. 방식에 따라 items의 필드 구성이 달라집니다.

evaluation_type 설명 items 추가 함수
3단계판별 위험도/빈도 없이 등급만 부여 _add_3_level_risk_assessment
빈도강도3 frequency(1~3) × intensity(1~3) → risk_score _add_frequency_intensity_risk_assessment
빈도강도5 frequency(1~5) × intensity(1~5) → risk_score _add_frequency_intensity_risk_assessment

평가 방식에 맞지 않는 항목 추가/수정 시 SAFETY_007 에러 발생.

문서 필드 (risk_assessment)

필드 타입 설명
title string 평가 문서 제목 (수정 가능)
assessment_type string "정기" | "수시" | "최초" (수정 가능)
evaluation_type string "3단계판별" | "빈도강도3" | "빈도강도5" (불변)
created_at timestamp 문서 생성 시각
created_by string 작성자 UID
created_by_name string 작성자 당시 이름

items 서브컬렉션 공통 필드

3단계판별 / 빈도강도 항목 모두 아래 기본 필드를 가집니다.

필드 타입 설명
work_type string 공종 대분류
detail_work_type string 세부 공종
unit_work_name string 단위 작업명
work_step_name string 작업 단계명
work_location string 작업 장소
risk_grade string 위험 등급 라벨
disaster_type string 재해 유형
risk_factor string 유해위험요인
prevention_measure string 예방 대책
responsible string 책임자
created_at timestamp 항목 생성 시각 (추가 시만 기록)
created_by string 항목 작성자 UID (추가 시만 기록)
created_by_name string 항목 작성자 당시 이름 (추가 시만 기록)

items 필드 (3단계판별 전용)

evaluation_type == "3단계판별"일 때 items 문서의 필드 = 공통 필드만 사용 (frequency/intensity/risk_score 없음).

items 필드 (빈도강도3 / 빈도강도5 전용)

필드 타입 설명
frequency int 발생 빈도 (빈도강도3: 1~3 / 빈도강도5: 1~5)
intensity int 강도 (빈도강도3: 1~3 / 빈도강도5: 1~5)
risk_score int 자동 계산값 = frequency * intensity
evaluation_type string 항목 저장 시 부모 문서의 평가 방식 복제 저장

범위를 벗어난 frequency/intensity 값은 저장 시 거절됩니다.

삭제 규칙

  • 문서(risk_assessment) 삭제 시 _delete_risk_assessment_document 호출 → 현재 로직은 문서만 삭제 (items 하위 정리는 호출자 책임).
  • 항목(items) 단건 삭제는 _delete_risk_assessment_item.

권한

모든 위험성 평가 관련 작업은 get_user_type 결과가 "company" (회사 관리자)여야 합니다. 근로자/장비는 접근 불가.

예시 문서 (빈도강도5 + items 1개)

// companies/{cid}/sites/{sid}/risk_assessment/{id}
{
  "title": "2026년 정기 위험성 평가",
  "assessment_type": "정기",
  "evaluation_type": "빈도강도5",
  "created_at": "2026-04-01T09:00:00Z",
  "created_by": "uid_admin",
  "created_by_name": "김관리자"
}

// 하위 items/{item_id}
{
  "work_type": "철근콘크리트공사",
  "detail_work_type": "거푸집",
  "unit_work_name": "거푸집 해체",
  "work_step_name": "고소작업",
  "work_location": "B동 5층",
  "frequency": 3,
  "intensity": 4,
  "risk_score": 12,
  "risk_grade": "상",
  "disaster_type": "추락",
  "risk_factor": "안전대 미착용 상태 작업",
  "prevention_measure": "안전대 부착 설비 설치 및 착용 교육",
  "responsible": "현장소장",
  "evaluation_type": "빈도강도5",
  "created_at": "2026-04-01T09:10:00Z",
  "created_by": "uid_admin",
  "created_by_name": "김관리자"
}