@chevre/domain
Version:
Chevre Domain Library for Node.js
92 lines (91 loc) • 3.74 kB
TypeScript
import type { Connection, FilterQuery } from 'mongoose';
import * as factory from '../factory';
import { IModel } from './mongoose/schemas/paymentService';
type IUnsetKey = keyof Pick<factory.service.paymentService.IService, 'additionalProperty' | 'availableChannel' | 'serviceOutput' | 'serviceType'>;
type IKeyOfProjection4paymentService = keyof factory.service.paymentService.IService;
/**
* 決済サービス検索条件
*/
type ISearchConditions4paymentService = factory.service.paymentService.ISearchConditions;
/**
* 決済サービスリポジトリ
*/
export declare class PaymentServiceRepo {
private readonly paymentServiceModel;
private readonly paymentServiceChannelModel;
constructor(connection: Connection);
static CREATE_MONGO_CONDITIONS(params: ISearchConditions4paymentService): FilterQuery<import("@chevre/factory/lib/service/paymentService").IService>[];
/**
* 決済サービスを保管する
*/
savePaymentService(params: {
/**
* idを指定すれば更新
*/
id?: string;
$set: factory.service.paymentService.IService & {
provider?: never;
};
$unset: {
[key in IUnsetKey]?: 1;
};
/**
* 指定プロジェクトの指定プロダクトタイプが存在しなければ作成する
*/
createIfNotExist?: boolean;
}): Promise<{
id: string;
}>;
/**
* 決済サービスを検索する
*/
projectFields(conditions: ISearchConditions4paymentService, inclusion: IKeyOfProjection4paymentService[]): Promise<(factory.service.paymentService.IService & {
id: string;
})[]>;
deletePaymentServiceById(params: {
id: string;
}): Promise<void>;
findAvailableChannelCreditCard(params: {
project: {
id: string;
};
/**
* payment service ID
*/
id: string;
}): Promise<Pick<factory.service.paymentService.IAvailableChannel, 'totalPaymentDue' | 'typeOf' | 'id'> & Pick<factory.serviceChannel.IServiceChannel, 'serviceUrl'> & {
id: string;
credentials: factory.serviceChannel.ICredentialsCreditCard;
}>;
findAvailableChannelMovieTicket(params: {
project: {
id: string;
};
/**
* payment service ID
*/
id: string;
}): Promise<Pick<factory.service.paymentService.IAvailableChannel, 'totalPaymentDue' | 'typeOf' | 'id'> & Pick<factory.serviceChannel.IServiceChannel, 'serviceUrl'> & {
id: string;
credentials: factory.serviceChannel.ICredentialsMovieTicket;
}>;
unsetUnnecessaryFields(params: {
filter: any;
$unset: any;
}): Promise<import("mongoose").UpdateWriteOpResult>;
getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, {}, Omit<import("@chevre/factory/lib/service/paymentService").IService, "id"> & {
provider?: factory.service.paymentService.IProvider[];
}> & Omit<import("@chevre/factory/lib/service/paymentService").IService, "id"> & {
provider?: factory.service.paymentService.IProvider[];
} & {
_id: import("mongoose").Types.ObjectId;
}, import("mongoose").QueryOptions<import("mongoose").Document<unknown, {}, Omit<import("@chevre/factory/lib/service/paymentService").IService, "id"> & {
provider?: factory.service.paymentService.IProvider[];
}> & Omit<import("@chevre/factory/lib/service/paymentService").IService, "id"> & {
provider?: factory.service.paymentService.IProvider[];
} & {
_id: import("mongoose").Types.ObjectId;
}>>;
getModel(): IModel;
}
export {};