UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

472 lines (471 loc) 14.6 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 = 'Order'; exports.modelName = modelName; const schemaDefinition = { broker: mongoose_1.SchemaTypes.Mixed, project: { type: mongoose_1.SchemaTypes.Mixed, required: true }, typeOf: { type: String, required: true }, identifier: [mongoose_1.SchemaTypes.Mixed], name: String, seller: mongoose_1.SchemaTypes.Mixed, customer: mongoose_1.SchemaTypes.Mixed, returner: mongoose_1.SchemaTypes.Mixed, confirmationNumber: String, orderNumber: { type: String, required: true }, price: Number, priceCurrency: String, acceptedOffers: [mongoose_1.SchemaTypes.Mixed], paymentMethods: [mongoose_1.SchemaTypes.Mixed], url: String, orderStatus: String, previousOrderStatus: String, // 追加(2023-08-31~) orderDate: { type: Date, required: true }, isGift: Boolean, dateReturned: Date, orderedItem: [mongoose_1.SchemaTypes.Mixed] // 追加(2022-04-15~) }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'orders', id: true, read: 'primary', writeConcern: writeConcern_1.writeConcern, strict: true, strictQuery: false, timestamps: false, versionKey: false, toJSON: { getters: false, virtuals: false, minimize: false, versionKey: false }, toObject: { getters: false, virtuals: true, minimize: false, versionKey: false } }; const indexes = [ [ { 'project.id': 1, orderDate: -1 }, { name: 'searchByProjectId-v20220721' } ], [ { identifier: 1, orderDate: -1 }, { name: 'searchByIdentifier', partialFilterExpression: { identifier: { $exists: true } } } ], [ // 注文番号はユニークなはず { orderNumber: 1 }, { unique: true, name: 'uniqueOrderNumber' } ], [ { 'seller.typeOf': 1, orderDate: -1 }, { name: 'searchBySellerTypeOf', partialFilterExpression: { 'seller.typeOf': { $exists: true } } } ], [ { 'seller.id': 1, orderDate: -1 }, { name: 'searchOrdersBySellerAndOrderDate', partialFilterExpression: { 'seller.id': { $exists: true } } } ], [ { orderDate: -1 }, { name: 'searchByOrderDate' } ], [ { orderStatus: 1, orderDate: -1 }, { name: 'searchOrdersByOrderStatusAndOrderDate' } ], [ { 'broker.id': 1, orderDate: -1 }, { name: 'searchByBrokerId', partialFilterExpression: { 'broker.id': { $exists: true } } } ], [ { confirmationNumber: 1, orderDate: -1 }, { name: 'searchOrdersByConfirmationNumberAndOrderDate', partialFilterExpression: { confirmationNumber: { $exists: true } } } ], [ { 'customer.typeOf': 1, orderDate: -1 }, { name: 'searchByCustomerTypeOfAndOrderDate', partialFilterExpression: { 'customer.typeOf': { $exists: true } } } ], [ { 'customer.id': 1, orderDate: -1 }, { name: 'searchByCustomerIdAndOrderDate', partialFilterExpression: { 'customer.id': { $exists: true } } } ], [ { 'customer.identifier': 1, orderDate: -1 }, { name: 'searchByCustomerIdentifierAndOrderDate', partialFilterExpression: { 'customer.identifier': { $exists: true } } } ], [ { 'customer.additionalProperty': 1, orderDate: -1 }, { name: 'searchByCustomerAdditionalProperty', partialFilterExpression: { 'customer.additionalProperty': { $exists: true } } } ], [ { 'customer.memberOf.membershipNumber': 1, orderDate: -1 }, { name: 'searchByCustomerMemberhipNumberAndOrderDate', partialFilterExpression: { 'customer.memberOf.membershipNumber': { $exists: true } } } ], [ { 'customer.givenName': 1, orderDate: -1 }, { name: 'searchByCustomerGivenNameAndOrderDate', partialFilterExpression: { 'customer.givenName': { $exists: true } } } ], [ { 'customer.familyName': 1, orderDate: -1 }, { name: 'searchByCustomerFamilyNameAndOrderDate', partialFilterExpression: { 'customer.familyName': { $exists: true } } } ], [ { 'customer.email': 1, orderDate: -1 }, { name: 'searchByCustomerEmailAndOrderDate', partialFilterExpression: { 'customer.email': { $exists: true } } } ], [ { 'customer.telephone': 1, orderDate: -1 }, { name: 'searchByCustomerTelephoneAndOrderDate', partialFilterExpression: { 'customer.telephone': { $exists: true } } } ], [ { name: 1, orderDate: -1 }, { name: 'searchByName', partialFilterExpression: { name: { $exists: true } } } ], [ { 'paymentMethods.accountId': 1, orderDate: -1 }, { name: 'searchByPaymentMethodsAccountId', partialFilterExpression: { 'paymentMethods.accountId': { $exists: true } } } ], [ { 'paymentMethods.additionalProperty': 1, orderDate: -1 }, { name: 'searchBypaymentMethodsAdditionalProperty', partialFilterExpression: { 'paymentMethods.additionalProperty': { $exists: true } } } ], [ { 'paymentMethods.typeOf': 1, orderDate: -1 }, { name: 'searchByPaymentMethodTypeAndOrderDate', partialFilterExpression: { 'paymentMethods.typeOf': { $exists: true } } } ], [ { 'paymentMethods.paymentMethod.identifier': 1, orderDate: -1 }, { name: 'searchByPaymentMethodIdentifier', partialFilterExpression: { 'paymentMethods.paymentMethod.identifier': { $exists: true } } } ], [ { 'paymentMethods.paymentMethodId': 1, orderDate: -1 }, { name: 'searchByPaymentMethodIdAndOrderDate', partialFilterExpression: { 'paymentMethods.paymentMethodId': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.typeOf': 1, orderDate: -1 }, { name: 'searchByItemOfferedTypeOf', partialFilterExpression: { 'acceptedOffers.itemOffered.typeOf': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.identifier': 1, orderDate: -1 }, { name: 'searchByItemOfferedIdentifier', partialFilterExpression: { 'acceptedOffers.itemOffered.identifier': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.id': 1, orderDate: -1 }, { name: 'searchByItemOfferedIdAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.id': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.issuedThrough.typeOf': 1, orderDate: -1 }, { name: 'searchByItemOfferedIssuedThroughTypeOf', partialFilterExpression: { 'acceptedOffers.itemOffered.issuedThrough.typeOf': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.issuedThrough.id': 1, orderDate: -1 }, { name: 'searchByItemOfferedIssuedThroughId', partialFilterExpression: { 'acceptedOffers.itemOffered.issuedThrough.id': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.programMembershipUsed.identifier': 1, orderDate: -1 }, { name: 'searchByItemOfferedProgramMembershipUsedIdentifier', partialFilterExpression: { 'acceptedOffers.itemOffered.programMembershipUsed.identifier': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.programMembershipUsed.issuedThrough.serviceType.codeValue': 1, orderDate: -1 }, { name: 'searchByItemOfferedMembershipUsedServiceType', partialFilterExpression: { 'acceptedOffers.itemOffered.programMembershipUsed.issuedThrough.serviceType.codeValue': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationNumber': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationNumberAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationNumber': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.id': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForIdAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.id': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.identifier': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForIdentifierAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.identifier': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.name': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForNameAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.name': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.endDate': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForEndDateAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.endDate': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.startDate': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForStartDateAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.startDate': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.location.branchCode': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForLocationBranchCodeAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.location.branchCode': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.superEvent.id': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForLocationSuperEventIdAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.superEvent.id': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.superEvent.location.branchCode': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForLocationSuperEventLocationBranchCodeAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.superEvent.location.branchCode': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservationFor.superEvent.workPerformed.identifier': 1, orderDate: -1 }, { name: 'searchByItemOfferedReservationForLocationSuperEventWorkPerformedIdentifierAndOrderDate', partialFilterExpression: { 'acceptedOffers.itemOffered.reservationFor.superEvent.workPerformed.identifier': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': 1, orderDate: -1 }, { name: 'searchByReservedTicketTicketedSeatSeatNumber', partialFilterExpression: { 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': { $exists: true } } } ], [ { 'acceptedOffers.itemOffered.reservedTicket.identifier': 1, orderDate: -1 }, { name: 'searchByReservedTicketIdentifier', partialFilterExpression: { 'acceptedOffers.itemOffered.reservedTicket.identifier': { $exists: true } } } ], [ { 'acceptedOffers.serialNumber': 1, orderDate: -1 }, { name: 'searchByAcceptedOffersSerialNumber', partialFilterExpression: { 'acceptedOffers.serialNumber': { $exists: true } } } ], [ { price: 1, orderDate: -1 }, { name: 'searchByPrice', partialFilterExpression: { price: { $exists: true } } } ], [ { typeOf: 1, orderDate: -1 }, { name: 'searchByTypeOf' } ] ]; 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; }