UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

146 lines (145 loc) 4.15 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 = 'AccountingReport'; exports.modelName = modelName; const schemaDefinition = { hasPart: [mongoose_1.SchemaTypes.Mixed], mainEntity: mongoose_1.SchemaTypes.Mixed, project: mongoose_1.SchemaTypes.Mixed, typeOf: String }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'accountingReports', id: true, read: settings_1.MONGO_READ_PREFERENCE, writeConcern: writeConcern_1.writeConcern, strict: true, strictQuery: false, timestamps: false, // 2024-08-07~ versionKey: false, // 2024-08-07~ toJSON: { getters: false, virtuals: false, minimize: false, versionKey: false }, toObject: { getters: false, virtuals: true, minimize: false, versionKey: false } }; const indexes = [ [ { 'mainEntity.orderDate': -1 }, { name: 'searchByOrderDate' } ], [ { 'mainEntity.orderNumber': 1 }, { unique: true, name: 'uniqueOrderNumber' } ], [ { 'project.id': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByProjectId' } ], [ { 'mainEntity.seller.id': 1, 'mainEntity.orderDate': -1 }, { name: 'searchBySellerId', partialFilterExpression: { 'mainEntity.seller.id': { $exists: true } } } ], [ { 'mainEntity.orderStatus': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByOrderStatus' } ], [ { 'mainEntity.confirmationNumber': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByConfirmationNumber', partialFilterExpression: { 'mainEntity.confirmationNumber': { $exists: true } } } ], [ { 'mainEntity.customer.id': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByCustomerId', partialFilterExpression: { 'mainEntity.customer.id': { $exists: true } } } ], [ { 'mainEntity.paymentMethods.accountId': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByPaymentMethodsAccountId', partialFilterExpression: { 'mainEntity.paymentMethods.accountId': { $exists: true } } } ], [ { 'mainEntity.paymentMethods.typeOf': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByPaymentMethodTypeOf', partialFilterExpression: { 'mainEntity.paymentMethods.typeOf': { $exists: true } } } ], [ { 'mainEntity.paymentMethods.paymentMethodId': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByPaymentMethodId', partialFilterExpression: { 'mainEntity.paymentMethods.paymentMethodId': { $exists: true } } } ], [ { 'mainEntity.acceptedOffers.itemOffered.reservationFor.startDate': 1, 'mainEntity.orderDate': -1 }, { name: 'searchByItemOfferedReservationForStartDate', partialFilterExpression: { 'mainEntity.acceptedOffers.itemOffered.reservationFor.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; }