UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

453 lines (452 loc) 13.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modelName = exports.indexes = void 0; exports.createSchema = createSchema; const mongoose_1 = require("mongoose"); const writeConcern_1 = require("../writeConcern"); const settings_1 = require("../../../settings"); const modelName = 'Reservation'; exports.modelName = modelName; const schemaDefinition = { project: { type: mongoose_1.SchemaTypes.Mixed, required: true }, provider: { type: mongoose_1.SchemaTypes.Mixed, required: true }, _id: String, typeOf: { type: String, required: true }, additionalTicketText: String, bookingAgent: mongoose_1.SchemaTypes.Mixed, bookingTime: Date, broker: mongoose_1.SchemaTypes.Mixed, // cancelReservationUrl: String, // checkinUrl: String, // confirmReservationUrl: String, modifiedTime: Date, // modifyReservationUrl: String, numSeats: Number, previousReservationStatus: String, price: mongoose_1.SchemaTypes.Mixed, priceCurrency: String, programMembershipUsed: mongoose_1.SchemaTypes.Mixed, reservationFor: mongoose_1.SchemaTypes.Mixed, reservationNumber: { type: String, required: true }, reservationStatus: { type: String, required: true }, reservedTicket: mongoose_1.SchemaTypes.Mixed, subReservation: mongoose_1.SchemaTypes.Mixed, underName: mongoose_1.SchemaTypes.Mixed, checkedIn: { type: Boolean, default: false }, attended: { type: Boolean, default: false }, additionalProperty: mongoose_1.SchemaTypes.Mixed, issuedThrough: mongoose_1.SchemaTypes.Mixed }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'reservations', id: true, read: 'primary', writeConcern: writeConcern_1.writeConcern, strict: true, strictQuery: false, timestamps: false, // 2024-07-02~ versionKey: false, // 2024-07-02~ toJSON: { getters: false, virtuals: false, minimize: false, versionKey: false }, toObject: { getters: false, virtuals: true, minimize: false, versionKey: false } }; const indexes = [ [ { bookingTime: -1 }, { name: 'searchByBookingTime-v3' } ], [ { 'project.id': 1, bookingTime: -1 }, { name: 'searchByProjectId-v20220721' } ], [ { 'provider.id': 1, bookingTime: -1 }, { name: 'searchByProviderId' } ], [ { typeOf: 1, bookingTime: -1 }, { name: 'searchByTypeOf-v3' } ], [ { reservationNumber: 1, bookingTime: -1 }, { name: 'searchByReservationNumber-v3' } ], [ { reservationStatus: 1, bookingTime: -1 }, { name: 'searchByReservationStatus-v3' } ], [ { checkedIn: 1, bookingTime: -1 }, { name: 'searchByCheckedIn-v3' } ], [ { attended: 1, bookingTime: -1 }, { name: 'searchByAttended-v3' } ], [ { useActionExists: 1, bookingTime: -1 }, { name: 'searchByUseActionExists', partialFilterExpression: { useActionExists: { $exists: true } } } ], [ { additionalTicketText: 1, bookingTime: -1 }, { name: 'searchByAdditionalTicketText-v3', partialFilterExpression: { additionalTicketText: { $exists: true } } } ], [ { additionalProperty: 1, bookingTime: -1 }, { name: 'searchByAdditionalProperty-v3', partialFilterExpression: { additionalProperty: { $exists: true } } } ], [ { 'price.priceComponent.appliesToMovieTicket.identifier': 1, bookingTime: -1 }, { name: 'searchByPriceComponentAppliesToMovieTicketIdentifier', partialFilterExpression: { 'price.priceComponent.appliesToMovieTicket.identifier': { $exists: true } } } ], [ { 'reservationFor.typeOf': 1, bookingTime: -1 }, { name: 'searchByReservationForTypeOf-v3', partialFilterExpression: { 'reservationFor.typeOf': { $exists: true } } } ], [ { 'reservationFor.id': 1, bookingTime: -1 }, { name: 'searchByReservationForId-v3', partialFilterExpression: { 'reservationFor.id': { $exists: true } } } ], [ { 'reservationFor.location.id': 1, bookingTime: -1 }, { name: 'searchByReservationForLocationId-v3', partialFilterExpression: { 'reservationFor.location.id': { $exists: true } } } ], [ { 'reservationFor.location.branchCode': 1, bookingTime: -1 }, { name: 'searchByReservationForLocationBranchCode-v3', partialFilterExpression: { 'reservationFor.location.branchCode': { $exists: true } } } ], [ { 'reservationFor.startDate': 1, bookingTime: -1 }, { name: 'searchByReservationForStartDate-v3', partialFilterExpression: { 'reservationFor.startDate': { $exists: true } } } ], [ { 'reservationFor.endDate': 1, bookingTime: -1 }, { name: 'searchByReservationForEndDate-v3', partialFilterExpression: { 'reservationFor.endDate': { $exists: true } } } ], [ { 'reservationFor.superEvent.id': 1, bookingTime: -1 }, { name: 'searchByReservationForSuperEventId-v3', partialFilterExpression: { 'reservationFor.superEvent.id': { $exists: true } } } ], [ { 'reservationFor.superEvent.workPerformed.id': 1, bookingTime: -1 }, { name: 'searchByReservationForSuperEventWorkPerformedId-v3', partialFilterExpression: { 'reservationFor.superEvent.workPerformed.id': { $exists: true } } } ], [ { 'reservationFor.superEvent.workPerformed.identifier': 1, bookingTime: -1 }, { name: 'searchByReservationForSuperEventWorkPerformedIdentifier-v3', partialFilterExpression: { 'reservationFor.superEvent.workPerformed.identifier': { $exists: true } } } ], [ { 'reservationFor.superEvent.location.id': 1, bookingTime: -1 }, { name: 'searchByReservationForSuperEventLocationId-v3', partialFilterExpression: { 'reservationFor.superEvent.location.id': { $exists: true } } } ], [ { 'reservationFor.superEvent.location.branchCode': 1, bookingTime: -1 }, { name: 'searchByReservationForSuperEventLocationBranchCode-v3', partialFilterExpression: { 'reservationFor.superEvent.location.branchCode': { $exists: true } } } ], [ { 'reservedTicket.ticketedSeat.seatNumber': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketedSeatSeatNumber-v3', partialFilterExpression: { 'reservedTicket.ticketedSeat.seatNumber': { $exists: true } } } ], [ { 'reservedTicket.ticketedSeat.seatRow': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketedSeatSeatRow-v3', partialFilterExpression: { 'reservedTicket.ticketedSeat.seatRow': { $exists: true } } } ], [ { 'reservedTicket.ticketedSeat.seatSection': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketedSeatSeatSection-v3', partialFilterExpression: { 'reservedTicket.ticketedSeat.seatSection': { $exists: true } } } ], [ { 'reservedTicket.ticketType.id': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketTypeId-v3', partialFilterExpression: { 'reservedTicket.ticketType.id': { $exists: true } } } ], [ { 'reservedTicket.ticketType.category.id': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketTypeCategoryId-v3', partialFilterExpression: { 'reservedTicket.ticketType.category.id': { $exists: true } } } ], [ { 'reservedTicket.ticketType.category.codeValue': 1, bookingTime: -1 }, { name: 'searchByReservedTicketTicketTypeCategoryCodeValue-v3', partialFilterExpression: { 'reservedTicket.ticketType.category.codeValue': { $exists: true } } } ], [ { 'reservedTicket.dateIssued': 1, bookingTime: -1 }, { name: 'reservedTicketDateIssued', partialFilterExpression: { 'reservedTicket.dateIssued': { $exists: true } } } ], [ { 'broker.id': 1, bookingTime: -1 }, { name: 'searchByBrokerId', partialFilterExpression: { 'broker.id': { $exists: true } } } ], [ { 'broker.name': 1, bookingTime: -1 }, { name: 'searchByBrokerName', partialFilterExpression: { 'broker.name': { $exists: true } } } ], [ { 'broker.familyName': 1, bookingTime: -1 }, { name: 'searchByBrokerFamilyName', partialFilterExpression: { 'broker.familyName': { $exists: true } } } ], [ { 'broker.givenName': 1, bookingTime: -1 }, { name: 'searchByBrokerGivenName', partialFilterExpression: { 'broker.givenName': { $exists: true } } } ], [ { 'broker.identifier': 1, bookingTime: -1 }, { name: 'searchByBrokerIdentifier', partialFilterExpression: { 'broker.identifier': { $exists: true } } } ], [ { 'programMembershipUsed.identifier': 1, bookingTime: -1 }, { name: 'searchByProgramMembershipUsedIdentifier', partialFilterExpression: { 'programMembershipUsed.identifier': { $exists: true } } } ], [ { 'programMembershipUsed.issuedThrough.serviceType.codeValue': 1, bookingTime: -1 }, { name: 'searchByMembershipUsedServiceType', partialFilterExpression: { 'programMembershipUsed.issuedThrough.serviceType.codeValue': { $exists: true } } } ], [ { 'underName.id': 1, bookingTime: -1 }, { name: 'searchByUnderNameId-v3', partialFilterExpression: { 'underName.id': { $exists: true } } } ], [ { 'underName.email': 1, bookingTime: -1 }, { name: 'searchByUnderNameEmail-v3', partialFilterExpression: { 'underName.email': { $exists: true } } } ], [ { 'underName.name': 1, bookingTime: -1 }, { name: 'searchByUnderNameName-v3', partialFilterExpression: { 'underName.name': { $exists: true } } } ], [ { 'underName.telephone': 1, bookingTime: -1 }, { name: 'searchByUnderNameTelephone-v3', partialFilterExpression: { 'underName.telephone': { $exists: true } } } ], [ { 'underName.familyName': 1, bookingTime: -1 }, { name: 'searchByUnderNameFamilyName-v3', partialFilterExpression: { 'underName.familyName': { $exists: true } } } ], [ { 'underName.givenName': 1, bookingTime: -1 }, { name: 'searchByUnderNameGivenName-v3', partialFilterExpression: { 'underName.givenName': { $exists: true } } } ], [ { 'underName.identifier': 1, bookingTime: -1 }, { name: 'searchByUnderNameIdentifier-v3', partialFilterExpression: { 'underName.identifier': { $exists: true } } } ] ]; exports.indexes = indexes; /** * 予約スキーマ */ let schema; function createSchema() { if (schema === undefined) { schema = new mongoose_1.Schema(schemaDefinition, schemaOptions); if (settings_1.MONGO_AUTO_INDEX) { indexes.forEach((indexParams) => { schema === null || schema === void 0 ? void 0 : schema.index(...indexParams); }); } } return schema; }