# 인증/영업 (슬라이드 14-22)

## 1. 가입 및 로그인 플로우차트 (슬라이드 15)

### 1.1 영업사원 플로우
```
운영 로그인 → 사업자등록번호 입력 → 사업자번호 조회?
                                      ↓ Yes
                                 회사정보 등록 → 가입신청 완료
                                                    ↓ (거절)
                                               거절 알림
```

### 1.2 관리자 플로우
```
자료 확인 → 승인? → (Yes) → 이메일로 URL 발송
              ↓ (No)
           계약금50% 결제 확인
```

### 1.3 고객사 플로우
```
약관 동의 → 비밀번호 설정 → SAM 로그인 → 테넌트 추가?
                                           ↓ (Yes)
                                    매니저: 테넌트 추가 알림
                                           ↓
                                    사업자등록번호 입력
```

## 2. 운영 로그인 (슬라이드 16)

### 2.1 아이디 인풋박스
- 테넌트 생성자일 경우 이메일
- 사용자일 경우 이메일 또는 아이디
- (1-1) 상황별 가이드 메시지

### 2.2 비밀번호 인풋박스
- 입력 시 마지막 글자 제외 후 마스킹 처리
- (2-1) 상황별 가이드 메시지

### 2.3 열람 버튼
- 클릭: 열람/숨김 토글
- 디폴트: 숨김 상태
- 열람 상태일 시 (2) 영역 마스킹 해제 처리

### 2.4 자동 로그인 체크박스
- 클릭: 체크 설정/해제 토글
- 체크 시 로그아웃 전까지 세션 유지

### 2.5 로그인 버튼
- 클릭: 유효할 경우 대시보드 화면으로 이동

### 2.6 가이드 메시지
| 상황 | 가이드 메시지 |
|------|---------------|
| 필수 정보 미 입력 시 | 필수 정보입니다. |
| 4글자 미만 입력 시 | 이메일은 4자 이상 가능합니다 |
| 이메일 형식에 유효 하지 않을 경우 | 이메일 주소를 다시 확인해주세요. |
| 8자 미만 입력 시 | 8자 이상으로 만들어주세요. |
| 영문+숫자+특수문자 조합이 아닐 경우 | 영문, 숫자, 특수문자를 포함해주세요. 다음의 특수기호는 보안 사항을 가능합니다., ; - @ ! |

## 3. 사업자등록번호 조회 (슬라이드 17)

### 3.1 제조 데모
- 클릭: 제조 데모 화면으로 이동

### 3.2 시공 데모
- 클릭: 시공 데모 화면으로 이동

### 3.3 사업자등록번호 인풋박스
- 숫자만 가능, 10자리

### 3.4 다음 버튼
- 클릭:
  1. 바로 빌 사업자등록번호 조회 후 사용 불가 경우: "중복된 사업자등록번호입니다." 알림 Alert 표시
  2. 바로 빌 사업자등록번호 조회 후 사용 가능한 경우:
     - [1] 테넌트 등록된 사업자등록번호일 경우: 테넌트 등록 전이어도 다른 영업사원이 등록중을 경우에는 사업자등록번호 사용 불가 (어드민에서는 해제 가능)
     - "등록된 사업자등록번호 입니다." 알림 Alert 표시
     - [2] 등록되지 않은 사업자등록번호일 경우: 회사정보 등록 화면으로 이동

## 4. 회사정보 등록 (슬라이드 18)

### 4.1 회사(테넌트) 상태
- 신청: 신청 완료 입력
- 승인: 자동 입금 외 계약금 50% 입금, 이메일로 URL 발송 선택
- 최초 로그인 시 ERP만 표시
- 거절: 프로젝트 설정 완료, 잔금 50% 입금 및 인도, 당월 말일까지는 무료, 익월부터 익월말까지 사용하고 구독료 청구
- 만료: 기간 종료, 안료외 연체 상태 구분?? 영업사원에게 알림, 서비스에는 접근 불가, 배너
- 해지: 오퍼 대기기간 단계 필요??
- 해지: 서비스 이용 불가
- 탈퇴: 로그인 불가, 복구 불가??
- 미사: 서비스 이용 불가

### 4.2 회사 로고 이미지 영역
- 디폴드 이미지 표시
- 클릭: 파일탐색기 팝업 표시, 10MB 이하의 PNG, JPEG, GIF 중 하나 선택 가능

### 4.3 우편번호 찾기 버튼
- 클릭: 선정한 주소 팝업 표시

### 4.4 찾기 버튼
- 클릭: 파일탐색기 팝업 표시, 이미지 또는 파일 하나 선택 가능

### 4.5 가입 신청 버튼
- 클릭: 사업자등록번호 조회 화면으로 이동
- 회사 로고만 선택, 나머지는 필수 정보
- 클릭: 가입 신청 완료 화면으로 이동

### 4.6 입력 필드
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 회사 로고 | N | 750x250px, 10MB 이하 PNG, JPEG, GIF |
| 회사명 | Y | |
| 대표자명 | Y | |
| 업태 | Y | |
| 업종 | Y | |
| 주소 | Y | 우편번호 찾기 + 상세주소 |
| 이메일 (아이디) | Y | |
| 세금계산서 이메일 | Y | |
| 담당자명 | Y | |
| 담당자 연락처 | Y | |
| 사업자등록증 | Y | 파일 첨부 |

## 5. 가입 신청 완료 (슬라이드 19)

### 5.1 가입 신청 완료 안내 문구 표시
- SAM은 폐쇄형 네트워크이므로 플랫폼의 무결성을 보장하기 위해 모든 계정을 검토해야 합니다.
- (회사명)의 계정 세부 정보를 추가로 확인하기 위해 추가 정보를 요청할 수 있습니다.
- 영업일 기준 3일 이내에 계정에 대한 업데이트를 받게 됩니다.

### 5.2 가입 신청 취소 버튼
- 클릭: "가입 신청 취소 시 등록한 모든 정보가 삭제됩니다. 정말 가입 신청을 취소하시겠습니까?" 확인 Alert 표시

## 6. 가입 신청 승인 성공 이메일 (슬라이드 20)

### 6.1 계정 활성화 버튼
- 클릭: 약관 동의 화면으로 이동

### 6.2 지원, 블로그 버튼
- 클릭: 해당 운영 노션 링크로 이동

## 7. 약관 동의 (슬라이드 21)

### 7.1 약관 영역
- 클릭: (1-1) 약관 내용 영역 열림/닫힘 토글
- 디폴트: 닫힘

### 7.2 체크박스
- 클릭: 체크 설정/해제 토글
- 디폴트: 체크 설정 해제

### 7.3 약관에 동의합니다 버튼
- 모든 필수 약관 동의 시 버튼 활성화
- 클릭: 비밀번호 설정 화면으로 이동

### 7.4 약관에 동의합니다 버튼
- 클릭: 모든 필수, 선택 약관에 동의 처리, 비밀번호 설정 화면으로 이동

### 7.5 약관 목록
| 약관명 | 필수 |
|--------|------|
| [필수] 서비스 이용약관 | Y |
| [필수] 개인정보 취급방침 | Y |
| [필수] 약관명 | Y |
| 마케팅 정보 수신 동의 (선택) | N |
| - 이메일 수신 동의 | N |
| - SMS 수신 동의 | N |

## 8. 비밀번호 설정 (슬라이드 22)

### 8.1 계정 활성화 버튼
- 클릭: 로그인 화면으로 이동

### 8.2 비밀번호 요구사항
- 최소 8자 이상 영문+숫자+특수문자 조합

---

## API 도출

### 인증 API
```
POST /api/auth/login                    # 로그인
POST /api/auth/logout                   # 로그아웃
POST /api/auth/password/reset           # 비밀번호 재설정
POST /api/auth/password/change          # 비밀번호 변경
```

### 회원가입/영업 API
```
GET  /api/business-registration/verify  # 사업자등록번호 조회
POST /api/registration/company          # 회사정보 등록
POST /api/registration/cancel           # 가입신청 취소
GET  /api/terms                         # 약관 목록 조회
POST /api/terms/agree                   # 약관 동의
POST /api/account/activate              # 계정 활성화
```

### 테넌트 API
```
GET  /api/tenants                       # 테넌트 목록
POST /api/tenants                       # 테넌트 추가
PUT  /api/tenants/{id}                  # 테넌트 수정
GET  /api/tenants/{id}/switch           # 테넌트 전환
```
