UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

58 lines (57 loc) 2.24 kB
import type { Connection } from 'mongoose'; import * as factory from '../factory'; type IOrderInTransaction = Pick<factory.order.IOrder, 'orderNumber' | 'project'> & { typeOf: factory.transactionType.PlaceOrder; orderDate: Date; acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[]; customer?: factory.order.ICustomer; }; export type IPlacingOrder = Pick<factory.order.IOrder, 'broker' | 'confirmationNumber' | 'identifier' | 'isGift' | 'name' | 'orderDate' | 'orderNumber' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'price' | 'priceCurrency' | 'seller' | 'typeOf' | 'url'> & { acceptedOffers?: never; customer?: never; }; /** * 取引中注文リポジトリ */ export declare class OrderInTransactionRepo { private readonly orderModel; constructor(connection: Connection); /** * 取引進行中の注文からacceptedOffersを検索する */ findAcceptedOffersByOrderNumber(params: { orderNumber: { $eq: string; }; }): Promise<factory.order.IAcceptedOffer<factory.order.IItemOffered>[]>; /** * 注文を受注する */ placeOrder(order: IPlacingOrder): Promise<void>; acceptOffer(params: Pick<IOrderInTransaction, 'acceptedOffers' | 'orderNumber' | 'project'>): Promise<import("mongoose").UpdateWriteOpResult | undefined>; /** * serialNumberからオファーを除外する * ホワイトリストとブラックリスト両方に対応 */ voidAcceptedOfferBySerialNumber(params: { orderNumber: string; acceptedOffers: { serialNumber: { $in?: string[]; $nin?: string[]; }; }; }): Promise<import("mongoose").UpdateWriteOpResult | undefined>; setCustomer(params: Pick<IOrderInTransaction, 'orderNumber' | 'project'> & { customer: factory.order.ICustomer; }): Promise<import("mongoose").UpdateWriteOpResult>; findCustomerByOrderNumber(params: { orderNumber: { $eq: string; }; }): Promise<factory.order.ICustomer>; deleteByOrderNumber(params: { orderNumber: string; }): Promise<import("mongodb").DeleteResult>; } export {};