import { HTTPNoBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { NeedLogin } from '../defines'; import { DealAction, DealState, PriceType, ProductKind } from '../enums'; // ========================================================================== export const ListDealBySellerOption = pito.Obj({ createdAtFrom : pito.Opt(pito.Date()), createdAtTo : pito.Opt(pito.Date()), productKind : pito.Opt(pito.Enums(ProductKind)), priceType : pito.Opt(pito.Enums(PriceType)), dealAction : pito.Opt(pito.Enums(DealAction)), dealActionComplete: pito.Opt(pito.Bool()), searchText : pito.Opt(pito.Str()), // offset: pito.Opt(pito.Int({ minimum: 0 })), // limit: pito.Opt(pito.Int({ minimum: 30, maximum: 100 })), pageSize: pito.Opt(pito.Int({ minimum: 0, maximum: 100 })), pageNo : pito.Opt(pito.Int({ minimum: 1 })), }); export type ListDealBySellerOption = pito.Type; // ========================================================================== export const ListDealBySellerOutput = pito.Obj({ found: pito.Arr(pito.Obj({ createdAt : pito.Date(), sellOrderId : pito.Num(), productKind : pito.Enums(ProductKind), bldNm : pito.Str(), dongNm : pito.Str(), hoNm : pito.Str(), flrNo : pito.Num(), priceType : pito.Enums(PriceType), pricePrice : pito.Num(), priceDeposit: pito.Num(), dealState : DealState, dealId : pito.Num(), productId : pito.Num(), deletedAt : pito.Opt(pito.Date()), })), }); export type ListDealBySellerOutput = pito.Type; // ========================================================================== export const ListDealBySeller = HTTPNoBody('GET', '/api/v1/product/deal/sell', 'deal') .query(ListDealBySellerOption) .response(ListDealBySellerOutput) .presets(NeedLogin) .build(); // ==========================================================================