UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

221 lines (220 loc) 5.78 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 = 'OwnershipInfo'; exports.modelName = modelName; const schemaDefinition = { project: mongoose_1.SchemaTypes.Mixed, _id: String, typeOf: { type: String, required: true }, identifier: { type: String, required: true }, ownedBy: mongoose_1.SchemaTypes.Mixed, acquiredFrom: mongoose_1.SchemaTypes.Mixed, ownedFrom: Date, ownedThrough: Date, typeOfGood: mongoose_1.SchemaTypes.Mixed }; const schemaOptions = { autoIndex: settings_1.MONGO_AUTO_INDEX, autoCreate: false, collection: 'ownershipInfos', 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 } }; /** * 所有権スキーマ */ let schema; function createSchema() { if (schema === undefined) { schema = new mongoose_1.Schema(schemaDefinition, schemaOptions); } return schema; } const indexes = [ [ // 識別子はユニークな前提 { identifier: 1 }, { unique: true, name: 'uniqueIdentifier' } ], [ { ownedFrom: -1 }, { name: 'searchByOwnedFrom-v3' } ], [ { 'project.id': 1, ownedFrom: -1 }, { name: 'searchByProjectId-v20220721' } ], [ { typeOf: 1, ownedFrom: -1 }, { name: 'searchByTypeOf-v2' } ], [ { identifier: 1, ownedFrom: -1 }, { name: 'searchByIdentifier-v2', partialFilterExpression: { identifier: { $exists: true } } } ], [ { 'acquiredFrom.id': 1, ownedFrom: -1 }, { name: 'searchByAcquiredFromId-v2', partialFilterExpression: { 'acquiredFrom.id': { $exists: true } } } ], [ { 'ownedBy.typeOf': 1, ownedFrom: -1 }, { name: 'searchByOwnedByTypeOf', partialFilterExpression: { 'ownedBy.typeOf': { $exists: true } } } ], [ { 'ownedBy.id': 1, ownedFrom: -1 }, { name: 'searchByOwnedById', partialFilterExpression: { 'ownedBy.id': { $exists: true } } } ], [ { 'ownedBy.memberOf.membershipNumber': 1, ownedFrom: -1 }, { name: 'searchByOwnedByMemberOfMembershipNumber', partialFilterExpression: { 'ownedBy.memberOf.membershipNumber': { $exists: true } } } ], [ { ownedThrough: -1, ownedFrom: -1 }, { name: 'searchByOwnedThrough-v2', partialFilterExpression: { ownedThrough: { $exists: true } } } ], [ { 'typeOfGood.typeOf': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodTypeOf-v2', partialFilterExpression: { 'typeOfGood.typeOf': { $exists: true } } } ], [ { 'typeOfGood.reservedTicket.ticketToken': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoofReservedTicketToken', partialFilterExpression: { 'typeOfGood.reservedTicket.ticketToken': { $exists: true } } } ], [ { 'typeOfGood.id': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodId', partialFilterExpression: { 'typeOfGood.id': { $exists: true } } } ], [ { 'typeOfGood.identifier': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodIdentifier', partialFilterExpression: { 'typeOfGood.identifier': { $exists: true } } } ], [ { 'typeOfGood.membershipFor.id': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodMembershipForId', partialFilterExpression: { 'typeOfGood.membershipFor.id': { $exists: true } } } ], [ { 'typeOfGood.issuedThrough.id': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodIssuedThroughId', partialFilterExpression: { 'typeOfGood.issuedThrough.id': { $exists: true } } } ], [ { 'typeOfGood.issuedThrough.typeOf': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodIssuedThroughTypeOf', partialFilterExpression: { 'typeOfGood.issuedThrough.typeOf': { $exists: true } } } ], [ { 'typeOfGood.accountNumber': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodAccountNumber', partialFilterExpression: { 'typeOfGood.accountNumber': { $exists: true } } } ], [ { 'typeOfGood.reservationNumber': 1, ownedFrom: -1 }, { name: 'searchByTypeOfGoodReservationNumber', partialFilterExpression: { 'typeOfGood.reservationNumber': { $exists: true } } } ] ]; exports.indexes = indexes;