@chevre/domain
Version:
Chevre Domain Library for Node.js
73 lines (72 loc) • 1.92 kB
TypeScript
import type { BulkWriteResult } from 'mongodb';
import { Connection } from 'mongoose';
import * as factory from '../factory';
type IMakesOffer = Pick<factory.seller.IMakesOffer, 'typeOf' | 'availableAtOrFrom' | 'eligibleTransactionDuration'>;
type IMakesOfferAsFindResult = IMakesOffer & {
offeredBy: {
id: string;
name: {
ja: string;
};
};
};
/**
* 販売者提供オファーリポジトリ
*/
export declare class SellerMakesOfferRepo {
private readonly sellerModel;
constructor(connection: Connection);
findOffers(params: {
limit?: number;
page?: number;
project?: {
id?: {
$eq?: string;
};
};
offeredBy?: {
id?: {
$eq?: string;
};
};
availableAtOrFrom?: {
id?: {
$eq?: string;
};
};
}): Promise<IMakesOfferAsFindResult[]>;
/**
* 販売者とアプリケーションに対してオファーが存在しなければ作成する
*/
createOffersIfNotExists(params: {
project: {
id: string;
};
offers: {
availableAtOrFrom: {
id: string;
};
eligibleTransactionDuration: factory.seller.IEligibleTransactionDuration;
offeredBy: {
id: string;
};
}[];
}): Promise<BulkWriteResult | void>;
/**
* 販売者とアプリケーションに対してオファーが存在すれば削除する
*/
deleteOffersIfExists(params: {
project: {
id: string;
};
offers: {
availableAtOrFrom: {
id: string;
};
offeredBy: {
id: string;
};
}[];
}): Promise<BulkWriteResult | void>;
}
export {};