import { HTTPNoBody } from '@fastify-modular/route'; import { pito } from 'pito'; import { NeedLogin } from '../defines'; import { DealAction, DealState, PriceType, ProductKind } from '../enums'; // ========================================================================== export const ListDealByOwnerOption = 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()), pageSize: pito.Opt(pito.Int({ minimum: 0, maximum: 100 })), pageNo : pito.Opt(pito.Int({ minimum: 1 })), // offset: pito.Opt(pito.Int({ minimum: 0 })), // limit: pito.Opt(pito.Int({ minimum: 30, maximum: 100 })), }); export type ListDealByOwnerOption = pito.Type; // ========================================================================== export const ListDealByOwnerOutput = 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 ListDealByOwnerOutput = pito.Type; // ========================================================================== export const ListDealByOwner = HTTPNoBody( 'GET', '/api/v1/product/deal/owner', 'deal', ) .query(ListDealByOwnerOption) .response(ListDealByOwnerOutput) .presets(NeedLogin) .build(); // ==========================================================================