UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

313 lines (312 loc) 9.32 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 = 'AssetTransaction'; exports.modelName = modelName; const schemaDefinition = { project: { type: mongoose_1.SchemaTypes.Mixed, required: true }, status: { type: String, required: true }, typeOf: { type: String, required: true }, transactionNumber: { type: String, required: true }, agent: mongoose_1.SchemaTypes.Mixed, recipient: mongoose_1.SchemaTypes.Mixed, seller: mongoose_1.SchemaTypes.Mixed, error: mongoose_1.SchemaTypes.Mixed, result: mongoose_1.SchemaTypes.Mixed, object: mongoose_1.SchemaTypes.Mixed, expires: Date, startDate: Date, endDate: Date, tasksExportAction: mongoose_1.SchemaTypes.Mixed, // tasksExportedAt: Date, // discontinue(2024-06-19~) // tasksExportationStatus: String, // discontinue(2024-06-19~) potentialActions: mongoose_1.SchemaTypes.Mixed, location: mongoose_1.SchemaTypes.Mixed, potentialAction: mongoose_1.SchemaTypes.Mixed, // add(2025-02-06~) instrument: mongoose_1.SchemaTypes.Mixed // add(2025-02-17~) }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'assetTransactions', 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 = [ [ { transactionNumber: 1 }, { unique: true, name: 'uniqueTransactionNumber' } ], [ { transactionNumber: 1, startDate: -1 }, { name: 'searchByTransactionNumber' } ], [ { 'project.id': 1, startDate: -1 }, { name: 'searchByProjectId-v20220721' } ], [ { typeOf: 1, startDate: -1 }, { name: 'searchByTypeOf-v2' } ], [ { status: 1, startDate: -1 }, { name: 'searchByStatus-v2' } ], [ { startDate: -1 }, { name: 'searchByStartDate-v2' } ], [ { endDate: 1, startDate: -1 }, { name: 'searchByEndDate-v2', partialFilterExpression: { endDate: { $exists: true } } } ], [ { expires: 1, startDate: -1 }, { name: 'searchByExpires-v2' } ], [ { 'object.accountId': 1, startDate: -1 }, { name: 'searchByObjectAccountId', partialFilterExpression: { 'object.accountId': { $exists: true } } } ], [ { 'object.paymentMethodId': 1, startDate: -1 }, { name: 'searchByObjectPaymentMethodId', partialFilterExpression: { 'object.paymentMethodId': { $exists: true } } } ], [ { 'object.provider.id': 1, startDate: -1 }, { name: 'searchByObjectProviderId', partialFilterExpression: { 'object.provider.id': { $exists: true } } } ], [ { 'object.subReservation.id': 1, startDate: -1 }, { name: 'searchByObjectSubReservationsId', partialFilterExpression: { 'object.subReservation.id': { $exists: true } } } ], [ { 'object.subReservation.reservationNumber': 1, startDate: -1 }, { name: 'searchByObjectSubReservationsReservationNumber', partialFilterExpression: { 'object.subReservation.reservationNumber': { $exists: true } } } ], [ { 'object.subReservation.reservationFor.id': 1, startDate: -1 }, { name: 'searchByObjectSubReservationsReservationForId', partialFilterExpression: { 'object.subReservation.reservationFor.id': { $exists: true } } } ], [ { 'object.subReservation.reservedTicket.ticketedSeat.seatNumber': 1, startDate: -1 }, { name: 'searchByObjectSubReservationTicketedSeatSeatNumber', partialFilterExpression: { 'object.subReservation.reservedTicket.ticketedSeat.seatNumber': { $exists: true } } } ], [ { 'object.reservationFor.id': 1, startDate: -1 }, { name: 'searchByObjectReservationForId', partialFilterExpression: { 'object.reservationFor.id': { $exists: true } } } ], [ { 'object.underName.id': 1, startDate: -1 }, { name: 'searchByObjectUnderNameId', partialFilterExpression: { 'object.underName.id': { $exists: true } } } ], [ { 'object.reservationNumber': 1, startDate: -1 }, { name: 'searchByObjectReservationNumber', partialFilterExpression: { 'object.reservationNumber': { $exists: true } } } ], [ { 'object.reservations.id': 1, startDate: -1 }, { name: 'searchByObjectReservationsId', partialFilterExpression: { 'object.reservations.id': { $exists: true } } } ], [ { 'object.reservations.reservationNumber': 1, startDate: -1 }, { name: 'searchByObjectReservationsReservationNumber', partialFilterExpression: { 'object.reservations.reservationNumber': { $exists: true } } } ], [ { 'object.reservations.reservationFor.id': 1, startDate: -1 }, { name: 'searchByObjectReservationsReservationForId', partialFilterExpression: { 'object.reservations.reservationFor.id': { $exists: true } } } ], [ { 'object.fromLocation.identifier': 1, startDate: -1 }, { name: 'searchByObjectFromLocationIdentifier', partialFilterExpression: { 'object.fromLocation.identifier': { $exists: true } } } ], [ { 'object.toLocation.identifier': 1, startDate: -1 }, { name: 'searchByObjectToLocationIdentifier', partialFilterExpression: { 'object.toLocation.identifier': { $exists: true } } } ], [ { 'object.pendingTransaction.identifier': 1, startDate: -1 }, { name: 'searchByObjectPendingTransactionIdentifier', partialFilterExpression: { 'object.pendingTransaction.identifier': { $exists: true } } } ], [ { 'object.itemOffered.serviceOutput.identifier': 1, startDate: -1 }, { name: 'searchByObjectItemOfferedServiceOutputIdentifier', partialFilterExpression: { 'object.itemOffered.serviceOutput.identifier': { $exists: true } } } ], [ { 'object.typeOf': 1, startDate: -1 }, { name: 'searchByObjectTypeOf', partialFilterExpression: { 'object.typeOf': { $exists: true } } } ], [ { status: 1, expires: 1 }, { name: 'makeExpired' } ], [ { status: 1, 'tasksExportAction.actionStatus': 1, endDate: 1 }, { name: 'exportTasksIfExists', partialFilterExpression: { 'tasksExportAction.actionStatus': { $exists: true }, endDate: { $exists: true } } } ], [ { 'tasksExportAction.actionStatus': 1, 'tasksExportAction.startDate': 1 }, { name: 'reExportTasks', partialFilterExpression: { 'tasksExportAction.startDate': { $exists: true } } } ], [ { 'tasksExportAction.actionStatus': 1, startDate: -1 }, { name: 'searchByTasksExportActionStatus', partialFilterExpression: { 'tasksExportAction.actionStatus': { $exists: true } } } ], [ { 'tasksExportAction.startDate': 1, startDate: -1 }, { name: 'searchByTasksExportActionStartDate', partialFilterExpression: { 'tasksExportAction.startDate': { $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; }