UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

136 lines (135 loc) 3.88 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 = 'PriceSpecification'; exports.modelName = modelName; const schemaDefinition = { project: mongoose_1.SchemaTypes.Mixed, typeOf: { type: String, required: true }, name: mongoose_1.SchemaTypes.Mixed, price: { type: Number, required: true }, priceCurrency: String, validFrom: Date, validThrough: Date, valueAddedTaxIncluded: Boolean, // referenceQuantity: SchemaTypes.Mixed, // appliesToSoundFormat: String, appliesToCategoryCode: mongoose_1.SchemaTypes.Mixed, appliesToMovieTicket: mongoose_1.SchemaTypes.Mixed, appliesToVideoFormat: String }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'priceSpecifications', id: true, read: settings_1.MONGO_READ_PREFERENCE, writeConcern: writeConcern_1.writeConcern, strict: true, // true化(2023-02-27~) strictQuery: false, timestamps: false, // 2024-08-06~ versionKey: false, // 2024-08-06~ toJSON: { getters: false, virtuals: false, minimize: false, versionKey: false }, toObject: { getters: false, virtuals: true, minimize: false, versionKey: false } }; /** * 価格仕様スキーマ */ let schema; function createSchema() { if (schema === undefined) { schema = new mongoose_1.Schema(schemaDefinition, schemaOptions); } return schema; } const indexes = [ // [ // discontinue(2024-08-07~) // { createdAt: 1 }, // { name: 'searchByCreatedAt' } // ], // [ // { updatedAt: 1 }, // { name: 'searchByUpdatedAt' } // ], [ { price: 1 }, { name: 'searchByPrice' } ], [ { 'project.id': 1, price: 1 }, { name: 'searchByProjectId' } ], [ { typeOf: 1, price: 1 }, { name: 'searchByTypeOf' } ], [ { appliesToVideoFormat: 1, price: 1 }, { name: 'searchByAppliesToVideoFormat', partialFilterExpression: { appliesToVideoFormat: { $exists: true } } } ], [ { 'appliesToMovieTicket.serviceType': 1, price: 1 }, { name: 'searchByAppliesToMovieTicketServiceType', partialFilterExpression: { 'appliesToMovieTicket.serviceType': { $exists: true } } } ], [ { 'appliesToMovieTicket.serviceOutput.typeOf': 1, price: 1 }, { name: 'searchByAppliesToMovieTicketServiceOutputTypeOf', partialFilterExpression: { 'appliesToMovieTicket.serviceOutput.typeOf': { $exists: true } } } ], [ { appliesToCategoryCode: 1, price: 1 }, { name: 'searchByAppliesToCategoryCode', partialFilterExpression: { appliesToCategoryCode: { $exists: true } } } ], [ { 'appliesToCategoryCode.codeValue': 1, price: 1 }, { name: 'searchByAppliesToCategoryCodeCodeValue', partialFilterExpression: { 'appliesToCategoryCode.codeValue': { $exists: true } } } ], [ { 'appliesToCategoryCode.inCodeSet.identifier': 1, price: 1 }, { name: 'searchByAppliesToCategoryCodeInCodeSetIdentifier', partialFilterExpression: { 'appliesToCategoryCode.inCodeSet.identifier': { $exists: true } } } ] ]; exports.indexes = indexes;