사용자 계정 관리 기능 구현 및 API 오류 수정

- 사용자 로그인 인증정보 관리 기능 구현 (이메일/휴대폰 추가/삭제)
- 사용자 추가 기능 구현 (실시간 ID 중복 검증 포함)
- 사용자 목록 조회 기능 구현
- API 엔드포인트 오류 수정 (userExistsUserid: GET → POST, URL 경로 수정)
- TypeScript 타입 오류 수정 (UseQueryOptions, UserCreateParams/Response)
- 이메일/휴대폰 형식 검증 및 중복 방지 로직 추가

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-09-25 09:10:38 +09:00
parent 3f404366cb
commit 5e1f24c8b8
18 changed files with 1148 additions and 207 deletions

View File

@@ -1,3 +1,8 @@
import {
DefaulResponsePagination,
DefaultRequestPagination
} from '@/entities/common/model/types';
export interface LoginParams {
id: string;
password: string;
@@ -21,28 +26,60 @@ export interface LoginResponse {
available2FAMethod?: Array<string>;
requires2FA?: boolean;
};
export interface UserInfo extends LoginResponse {
}
export interface UserParams {
};
export interface UserListItem {
usrid: string;
idCl: string;
status: string;
}
export interface UserFindResponse extends DefaulResponsePagination {
content: Array<UserListItem>;
};
export interface UserFindParams {
mid: string;
page: DefaultRequestPagination;
};
export interface UserExistsUseridParams {
usrId: string;
};
export interface UserFindAuthMethodParams {
mid: string;
usrid: string;
page?: DefaultRequestPagination;
};
export interface UserFindAuthMethodResponse {
status: boolean;
data: UserAuthMethodData;
};
export interface UserExistsUseridResponse {
exists: boolean;
};
export interface VerificationsItem {
type: string;
contact: string;
};
export interface UserCreateParams {
userId: string;
password: string;
loginRange: string;
verification: Array<VerificationsItem>
};
export interface UserData {
usrid: string;
mid: string;
@@ -85,5 +122,17 @@ export interface UserData {
};
export interface UserCreateResponse {
user: UserData;
};
};
export interface AuthMethodItem {
usrid: string;
systemAdminClassId: string;
authMethodType: string;
sequence: number;
content: string;
}
export interface UserAuthMethodData {
emails: Array<AuthMethodItem>;
phones: Array<AuthMethodItem>;
}