@chevre/domain
Version:
Chevre Domain Library for Node.js
43 lines (42 loc) • 1.13 kB
TypeScript
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[]>;
}