@chevre/domain
Version:
Chevre Domain Library for Node.js
148 lines (147 loc) • 4.04 kB
TypeScript
import type { AnyExpression, Connection, PipelineStage } from 'mongoose';
import * as factory from '../../factory';
type IMatchStage = PipelineStage.Match;
/**
* 座席編集時レスポンス
*/
interface IUpdateSeatResult {
containedInPlace: {
/**
* 施設ID
*/
id: string;
};
typeOf: factory.placeType.ScreeningRoom;
}
export declare const DEFAULT_ROOM_MAXIMUM_CAPACITY: number;
/**
* 座席リポジトリ
*/
export declare class SeatRepo {
private readonly civicStructureModel;
private readonly placeModel;
constructor(connection: Connection);
static CREATE_SEARCH_SEATS_PROJECTION(params: factory.place.seat.IProjection): {
[field: string]: AnyExpression;
};
static CREATE_MATCH_STAGES(params: factory.place.seat.ISearchConditions, options: {
filterTypeOf: boolean;
}): IMatchStage[];
createSeat(seat: factory.place.seat.IPlace & {
parentOrganization?: {
id?: string;
};
}): Promise<IUpdateSeatResult>;
updateSeat(seat: Omit<factory.place.seat.IPlace, 'containedInPlace'> & {
containedInPlace: {
branchCode: string;
containedInPlace: {
branchCode: string;
containedInPlace: {
branchCode: string;
};
};
};
parentOrganization?: {
id?: string;
};
}, $unset: any): Promise<IUpdateSeatResult>;
searchSeats(params: factory.place.seat.ISearchConditions): Promise<factory.place.seat.IPlace[]>;
projectSeatsByScreeningRoom(params: Pick<factory.place.seat.ISearchConditions, '$projection' | 'additionalProperty' | 'branchCode' | 'seatingType' | 'name' | 'limit' | 'page'> & {
project: {
id: {
$eq: string;
};
};
screeningRoom: {
/**
* ルームコード
*/
branchCode: {
$eq: string;
};
containedInPlace: {
/**
* 施設コード
*/
branchCode: {
$eq: string;
};
};
};
containedInPlace?: {
/**
* セクションコード
*/
branchCode?: {
$eq?: string;
$in?: string[];
};
};
}): Promise<factory.place.seat.IPlace[]>;
/**
* 座席区分集計検索
*/
aggregateSeatingTypes(params: {
project: {
id: {
$eq: string;
};
};
/**
* 座席コード
*/
branchCode?: {
$in?: string[];
};
containedInPlace?: {
/**
* セクションコード
*/
branchCode?: {
$in?: string[];
};
containedInPlace?: {
branchCode?: {
$eq?: string;
};
containedInPlace?: {
branchCode?: {
$eq?: string;
};
};
};
};
}): Promise<string[]>;
deleteSeat(seat: {
project: {
id: string;
};
parentOrganization?: {
id?: string;
};
/**
* 座席コード
*/
branchCode: string;
containedInPlace: {
/**
* セクションコード
*/
branchCode: string;
containedInPlace: {
/**
* ルームコード
*/
branchCode: string;
containedInPlace: {
/**
* 施設コード
*/
branchCode: string;
};
};
};
}): Promise<IUpdateSeatResult>;
}
export {};