File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
// 진행단계 12개 라벨. 백엔드는 숫자(1..12)만 저장하고 라벨은 여기서만 관리한다 -
// OrgOverview(업무단계 현황 스트립·진행단계 변경 모달)와 Timeline(단계 변경 이벤트)이
// 같은 배열을 가져다 쓴다. 인덱스 0이 1단계다.
export const STAGE_LABELS: string[] = [
'신청',
'목록접수',
'예비검토',
'변호사 배당',
'법률검토(권리확인)',
'RE:확인',
'법률검토(권리확인) 완료',
'법률검토(권리처리)',
'RE:처리',
'법률검토(권리처리) 완료',
'법률검토 최종완료',
'보고서 작성',
]
/** 1..12 단계 번호를 라벨로 바꾼다. 범위 밖이면 번호를 그대로 문자열로 돌려준다. */
export function stageLabel(stage: number): string {
return STAGE_LABELS[stage - 1] ?? String(stage)
}
/**
* 12단계를 업무 성격으로 묶은 구간. 대시보드의 "업무 구간" 필터와 칸반 카드 모양
* (권리확인 구간은 확인 진척 막대 1줄, 권리처리 구간은 확인+처리 2줄)이 이 묶음을 쓴다.
*/
export const STAGE_GROUPS: { key: string; label: string; stages: number[] }[] = [
{ key: 'intake', label: '접수', stages: [1, 2, 3] },
{ key: 'assign', label: '배당', stages: [4] },
{ key: 'check', label: '권리확인', stages: [5, 6, 7] },
{ key: 'process', label: '권리처리', stages: [8, 9, 10] },
{ key: 'closing', label: '마감', stages: [11, 12] },
]
/** 단계 번호가 속한 구간 key. 범위 밖이거나 null이면 null. */
export function stageGroupKey(stage: number | null): string | null {
if (stage === null) {
return null
}
return STAGE_GROUPS.find((group) => group.stages.includes(stage))?.key ?? null
}