담당자 등록 비즈니스 로직
담당자 등록 비즈니스 로직
Section titled “담당자 등록 비즈니스 로직”담당자 등록은 관리자 초대 → 담당자 등록 → 관리자 승인의 3단계 프로세스입니다.
- 초대됨 (invited): 초대 링크 발송 완료
- 승인대기 (pending): 담당자 등록 완료, 승인 대기
- 승인됨 (approved): 승인 완료, 시스템 접근 가능
- 거부됨 (rejected): 등록 요청 거부
- 만료됨 (expired): 5회 시도 초과로 링크 만료
stateDiagram-v2 초대됨 --> 승인대기: 담당자 등록 승인대기 --> 승인됨: 관리자 승인 승인대기 --> 거부됨: 관리자 거부 초대됨 --> 만료됨: 5회 실패
등록 프로세스
Section titled “등록 프로세스”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회 시도
- 본인 확인: 이름, 전화번호 일치 검증
- 비밀번호: 해시 처리 저장
일괄 등록 파일 업로드
Section titled “일괄 등록 파일 업로드”- 용량 제한: 최대 5MB, 100명
- 필수 필드: 이름, 직책, 전화번호
- 검증: 중복 확인, 형식 검증
- 기본 역할: admin (관리자), manager (담당자)
- 접근 제어: 할당된 건물 그룹만 접근
데이터 구조
Section titled “데이터 구조”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; // 해시 처리}구현 체크리스트
Section titled “구현 체크리스트”- 개별/일괄 초대 (CSV)
- 초대 링크 생성/발송
- 본인 확인 + 등록 폼
- 승인/거부 처리
- 권한 관리
- 링크 일회성 사용
- 5회 시도 제한
- 비밀번호 해시
- 세션 관리