컨텐츠로 건너뛰기

담당자 등록 비즈니스 로직

담당자 등록은 관리자 초대 → 담당자 등록 → 관리자 승인의 3단계 프로세스입니다.

  • 초대됨 (invited): 초대 링크 발송 완료
  • 승인대기 (pending): 담당자 등록 완료, 승인 대기
  • 승인됨 (approved): 승인 완료, 시스템 접근 가능
  • 거부됨 (rejected): 등록 요청 거부
  • 만료됨 (expired): 5회 시도 초과로 링크 만료
stateDiagram-v2
   초대됨 --> 승인대기: 담당자 등록
   승인대기 --> 승인됨: 관리자 승인
   승인대기 --> 거부됨: 관리자 거부
   초대됨 --> 만료됨: 5회 실패
sequenceDiagram
    participant A as 관리자
    participant S as 시스템
    participant M as 담당자
    
    A->>S: 담당자 초대 링크 생성
    S->>A: 초대 링크 발송
    A->>M: 초대 링크 발송 (이메일/SMS)
    
    M->>S: 초대 링크 접속
    S->>S: 링크 유효성 검증
    M->>S: 본인 확인 + 비밀번호 설정
    S->>S: 상태 변경 (pending)
    
    A->>S: 승인 대기 목록 조회
    A->>S: 승인/거부 결정
    S->>S: 상태 변경 (approved/rejected)
    S->>M: 결과 알림 발송
  • 링크 제한: 일회성 사용, 최대 5회 시도
  • 본인 확인: 이름, 전화번호 일치 검증
  • 비밀번호: 해시 처리 저장
  • 용량 제한: 최대 5MB, 100명
  • 필수 필드: 이름, 직책, 전화번호
  • 검증: 중복 확인, 형식 검증
  • 기본 역할: admin (관리자), manager (담당자)
  • 접근 제어: 할당된 건물 그룹만 접근
interface Manager {
// 기본 정보
id: number;
name: string;
position: string;
phone: string;
email?: string;
// 상태 관리
status: "invited" | "pending" | "approved" | "rejected" | "expired";
role: "admin" | "manager";
// 권한
buildingGroups: number[];
// 초대 정보
inviteToken?: string;
invitedAt?: string;
// 보안
password?: string; // 해시 처리
}
  • 개별/일괄 초대 (CSV)
  • 초대 링크 생성/발송
  • 본인 확인 + 등록 폼
  • 승인/거부 처리
  • 권한 관리
  • 링크 일회성 사용
  • 5회 시도 제한
  • 비밀번호 해시
  • 세션 관리