import { HTTPBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { PriceDefine } from '..'; import { NeedLogin } from '../defines'; import { FurnitureDefine, GenderType, ProductKind, ProductType } from '../enums'; import { MoveInDefine } from '../types'; import { AdminExpensesDefine } from '../types/admin-expenses'; import { ParkingDefine } from '../types/parking'; // ========================================================================== export const CreateProductBySellerInput = pito.Obj({ /* 매물 정보 */ address: pito.Str(), productKind: pito.Enums(ProductKind), // 매물 종류 (개별선택 = 01:원룸, 02:투룸, 03:쓰리룸, 04:오피스텔/도시형, 05:아파트) productType: pito.Enums(ProductType), // 건물 유형 (개별선택 : 원룸/투룸/쓰리룸 일때만 처리 => 01:단독주택, 02:다가구주택, 03:빌라/연립/다세대, 04:상가주택) moveIn: MoveInDefine, adminExpenses: AdminExpensesDefine, parking : ParkingDefine, furniture : pito.Arr(FurnitureDefine), title : pito.Str(), description : pito.Str(), note : pito.Opt(pito.Str()), characteristic: pito.Opt(pito.Str()), /* 주문정보 */ prices: pito.Arr(PriceDefine, { minItems: 1 }), /* 유저 인증정보 */ userName : pito.Str(), email : pito.Opt(pito.Str()), phoneNumber: pito.Str(), genderType : pito.Enums(GenderType), }); export type CreateProductBySellerInput = pito.Type; // ========================================================================== export const CreateProductBySellerOption = pito.Obj({}); export type CreateProductBySellerOption = pito.Type; // ========================================================================== export const CreateProductBySellerOutput = pito.Obj({ productId : pito.Num(), sellOrderIds: pito.Arr(pito.Num()), }); export type CreateProductBySellerOutput = pito.Type; // ========================================================================== export const CreateProductBySeller = HTTPBody('POST', '/api/v1/product/product/seller', 'product') .body(CreateProductBySellerInput) .query(CreateProductBySellerOption) .response(CreateProductBySellerOutput) .presets(NeedLogin) .build(); // ==========================================================================