UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

43 lines (42 loc) 1.13 kB
import type { Connection, FilterQuery } from 'mongoose'; import * as factory from '../factory'; import { ITicket, ITicketIssuedBy } from './mongoose/schemas/ticket'; export { ITicket }; type IIssueParams = Pick<ITicket, 'ticketToken'> & { project: { id: string; }; issuedBy?: ITicketIssuedBy; }; interface ISearchConditions { limit?: number; page?: number; sort?: { dateIssued?: factory.sortType; }; project?: { id?: { $eq?: string; }; }; id?: { $eq?: string; }; ticketToken?: { $eq?: string; }; } type IKeyOfProjection = keyof ITicket; /** * チケットリポジトリ */ export declare class TicketRepo { private readonly ticketModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: ISearchConditions): FilterQuery<ITicket>[]; /** * 承認コードからチケットを発行する */ issueByTicketToken(params: IIssueParams): Promise<Pick<ITicket, 'id'>>; projectFields(params: ISearchConditions, inclusion: IKeyOfProjection[]): Promise<ITicket[]>; }