import { HTTPNoBody } from "@fastify-modular/route"; import { pito } from "pito"; import { NeedLogin } from "../defines"; import { BrokerType, GenderType, NationalityType, UserRole, UserState, } from "../enums"; // ===================================================================================== export const FindUserParam = pito.Obj({ userId: pito.Num(), }); export type FindUserParam = pito.Type; // ===================================================================================== export const FindUserOption = pito.Obj({}); export type FindUserOption = pito.Type; // ===================================================================================== export const FindUserInput = pito.Obj({}); export type FindUserInput = pito.Type; // ===================================================================================== export const FindUserOutput = pito.Obj({ user: pito.Obj({ userId : pito.Num(), userState : pito.Enums(UserState), userRole : pito.Enums(UserRole), userName : pito.Opt(pito.Str()), // '이름'; email : pito.Opt(pito.Str()), // '이메일'; phoneNumber : pito.Str(), // '전화번호'; nickName : pito.Opt(pito.Str()), // '닉네임'; birth : pito.Opt(pito.Date()), // '생년월일'; nationalityType: pito.Opt(pito.Enums(NationalityType)), // '내외국인(01:내국인, 02:외국인)' genderType : pito.Opt(pito.Enums(GenderType)), // '성별(01:남성, 02:여성)' thmbn : pito.Opt(pito.Str()), // '대표 섬네일 URL 주소' brokerCd : pito.Opt(pito.Str()), // '공인중개사 코드' brokerType : pito.Opt(pito.Enums(BrokerType)), // '공인중개사 유형 01: 대표공인중개사, 02:소속공인중개사' dutyName : pito.Opt(pito.Str()), // '직책명' createdAt : pito.Date(), }), auth: pito.Obj({ userAuthYn: pito.Str(), emailRcvYn: pito.Str(), kakaoRcvYn: pito.Str(), smsRcvYn : pito.Str(), }), }); export type FindUserOutput = pito.Type; // ===================================================================================== export const FindUser = HTTPNoBody("GET", "/api/v1/admin/user/:userId", "admin") .params(FindUserParam) .query(FindUserOption) .response(FindUserOutput) .presets(NeedLogin) .build(); // =====================================================================================