@chevre/domain 22.6.0-alpha.5 → 22.6.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,40 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment-timezone';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../../lib/index';
6
+
7
+ const EXCLUDED_PROJECT_ID = String(process.env.EXCLUDED_PROJECT_ID);
8
+
9
+ async function main() {
10
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
+
12
+ const orderRepo = await chevre.repository.Order.createInstance(mongoose.connection);
13
+
14
+ const aggregateDate = new Date('2024-11-03T10:00:00+09:00');
15
+ const aggregateDurationUnit = 'days';
16
+ // const aggregateDurationUnit = 'hours';
17
+ const startFrom: Date = moment(aggregateDate)
18
+ .utc()
19
+ .startOf(aggregateDurationUnit)
20
+ .toDate();
21
+ const startThrough: Date = moment(aggregateDate)
22
+ .utc()
23
+ .endOf(aggregateDurationUnit)
24
+ .toDate();
25
+
26
+ const startTime = process.hrtime();
27
+ const aggregateResult = await orderRepo.aggregateOrder({
28
+ project: { id: { $ne: EXCLUDED_PROJECT_ID } },
29
+ orderDate: { $gte: startFrom, $lte: startThrough }
30
+ });
31
+ console.log('aggregateOrder:result', aggregateResult, startFrom, startThrough);
32
+ const diff = process.hrtime(startTime);
33
+ console.log(`importing chevre took ${diff[0]} seconds and ${diff[1]} nanoseconds.`);
34
+ }
35
+
36
+ main()
37
+ .then(() => {
38
+ console.log('success!');
39
+ })
40
+ .catch(console.error);
@@ -0,0 +1,39 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const scheduleRepo = await chevre.repository.Schedule.createInstance(mongoose.connection);
10
+
11
+ const result = await scheduleRepo.findOne();
12
+ // tslint:disable-next-line:no-null-keyword
13
+ console.dir(result, { depth: null });
14
+
15
+ if (result === null) {
16
+ await scheduleRepo.saveOne({
17
+ project: { id: 'ttts-development', typeOf: chevre.factory.organizationType.Project },
18
+ film: '001',
19
+ theater: '001',
20
+ eventServiceProductID: 'EventService7k7nv1s7i',
21
+ duration: 15,
22
+ noPerformanceTimes: [
23
+ '2215',
24
+ '2230',
25
+ '2245'
26
+ ],
27
+ hours: ['9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22'],
28
+ minutes: ['00', '15', '30', '45'],
29
+ tours: ['1', '2', '3', '4'],
30
+ start: 91,
31
+ days: 1
32
+ });
33
+ console.log('saved');
34
+ }
35
+ }
36
+
37
+ main()
38
+ .then(console.log)
39
+ .catch(console.error);
@@ -48,6 +48,18 @@ const indexes = [
48
48
  [
49
49
  { aggregateDuration: 1, aggregateStart: 1 },
50
50
  { name: 'searchByAggregateDuration' }
51
+ ],
52
+ [
53
+ {
54
+ typeOf: 1,
55
+ 'project.id': 1,
56
+ aggregateStart: 1,
57
+ aggregateDuration: 1
58
+ },
59
+ {
60
+ unique: true,
61
+ name: 'uniqueByAggregateStart'
62
+ }
51
63
  ]
52
64
  ];
53
65
  exports.indexes = indexes;
@@ -0,0 +1,10 @@
1
+ import { IndexDefinition, IndexOptions, Model, Schema, SchemaDefinition } from 'mongoose';
2
+ import * as factory from '../../../factory';
3
+ type IDocType = factory.schedule.ISchedule4ttts;
4
+ type IModel = Model<IDocType>;
5
+ type ISchemaDefinition = SchemaDefinition<IDocType>;
6
+ type ISchema = Schema<IDocType, IModel, {}, {}, {}, {}, ISchemaDefinition, IDocType>;
7
+ declare const modelName = "Schedule";
8
+ declare const indexes: [d: IndexDefinition, o: IndexOptions][];
9
+ declare function createSchema(): ISchema;
10
+ export { createSchema, IModel, indexes, modelName };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modelName = exports.indexes = exports.createSchema = void 0;
4
+ const mongoose_1 = require("mongoose");
5
+ const writeConcern_1 = require("../writeConcern");
6
+ const settings_1 = require("../../../settings");
7
+ const modelName = 'Schedule';
8
+ exports.modelName = modelName;
9
+ const schemaDefinition = {};
10
+ const schemaOptions = {
11
+ autoIndex: settings_1.MONGO_AUTO_INDEX,
12
+ autoCreate: false,
13
+ collection: 'schedules',
14
+ id: true,
15
+ read: settings_1.MONGO_READ_PREFERENCE,
16
+ writeConcern: writeConcern_1.writeConcern,
17
+ strict: false,
18
+ strictQuery: false,
19
+ timestamps: false,
20
+ versionKey: false,
21
+ toJSON: {
22
+ getters: false,
23
+ virtuals: false,
24
+ minimize: false,
25
+ versionKey: false
26
+ },
27
+ toObject: {
28
+ getters: false,
29
+ virtuals: true,
30
+ minimize: false,
31
+ versionKey: false
32
+ }
33
+ };
34
+ const indexes = [];
35
+ exports.indexes = indexes;
36
+ /**
37
+ * スケジュールスキーマ
38
+ */
39
+ let schema;
40
+ function createSchema() {
41
+ if (schema === undefined) {
42
+ schema = new mongoose_1.Schema(schemaDefinition, schemaOptions);
43
+ if (settings_1.MONGO_AUTO_INDEX) {
44
+ indexes.forEach((indexParams) => {
45
+ schema === null || schema === void 0 ? void 0 : schema.index(...indexParams);
46
+ });
47
+ }
48
+ }
49
+ return schema;
50
+ }
51
+ exports.createSchema = createSchema;
@@ -0,0 +1,11 @@
1
+ import type { Connection } from 'mongoose';
2
+ import * as factory from '../factory';
3
+ /**
4
+ * スケジュールリポジトリ
5
+ */
6
+ export declare class ScheduleRepo {
7
+ private readonly scheduleModel;
8
+ constructor(connection: Connection);
9
+ saveOne(params: factory.schedule.ISchedule4ttts): Promise<void>;
10
+ findOne(): Promise<factory.schedule.ISchedule4ttts | null>;
11
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ScheduleRepo = void 0;
13
+ const schedule_1 = require("./mongoose/schemas/schedule");
14
+ /**
15
+ * スケジュールリポジトリ
16
+ */
17
+ class ScheduleRepo {
18
+ constructor(connection) {
19
+ this.scheduleModel = connection.model(schedule_1.modelName, (0, schedule_1.createSchema)());
20
+ }
21
+ saveOne(params) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ yield this.scheduleModel.create(params);
24
+ });
25
+ }
26
+ findOne() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return this.scheduleModel.findOne()
29
+ .lean()
30
+ .exec();
31
+ });
32
+ }
33
+ }
34
+ exports.ScheduleRepo = ScheduleRepo;
@@ -52,6 +52,7 @@ import type { ProjectMakesOfferRepo } from './repo/projectMakesOffer';
52
52
  import type { OfferRateLimitRepo } from './repo/rateLimit/offer';
53
53
  import type { ReservationRepo } from './repo/reservation';
54
54
  import type { RoleRepo } from './repo/role';
55
+ import type { ScheduleRepo } from './repo/schedule';
55
56
  import type { SellerRepo } from './repo/seller';
56
57
  import type { SellerPaymentAcceptedRepo } from './repo/sellerPaymentAccepted';
57
58
  import type { ServiceOutputRepo } from './repo/serviceOutput';
@@ -309,6 +310,10 @@ export type Role = RoleRepo;
309
310
  export declare namespace Role {
310
311
  function createInstance(...params: ConstructorParameters<typeof RoleRepo>): Promise<RoleRepo>;
311
312
  }
313
+ export type Schedule = ScheduleRepo;
314
+ export declare namespace Schedule {
315
+ function createInstance(...params: ConstructorParameters<typeof ScheduleRepo>): Promise<ScheduleRepo>;
316
+ }
312
317
  export type Seller = SellerRepo;
313
318
  export declare namespace Seller {
314
319
  function createInstance(...params: ConstructorParameters<typeof SellerRepo>): Promise<SellerRepo>;
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Seller = exports.Role = exports.Reservation = exports.ProjectMakesOffer = exports.Project = exports.ProductOffer = exports.ProductModel = exports.Product = exports.PriceSpecification = exports.place = exports.Permit = exports.Person = exports.paymentMethod = exports.PaymentServiceProvider = exports.PaymentService = exports.Passport = exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.Note = exports.Message = exports.MerchantReturnPolicy = exports.Member = exports.EventSeries = exports.EventSellerMakesOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.CreativeWork = exports.ConfirmationNumber = exports.Comment = exports.Authorization = exports.CategoryCode = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOffer = exports.AdditionalProperty = exports.Action = exports.AccountTransaction = exports.AccountTitle = exports.AccountingReport = exports.Account = exports.AcceptedOffer = void 0;
13
- exports.rateLimit = exports.Trip = exports.TransactionProcess = exports.TransactionNumber = exports.Transaction = exports.Ticket = exports.Telemetry = exports.Task = exports.StockHolder = exports.ServiceOutputIdentifier = exports.ServiceOutput = exports.SellerPaymentAccepted = void 0;
12
+ exports.Schedule = exports.Role = exports.Reservation = exports.ProjectMakesOffer = exports.Project = exports.ProductOffer = exports.ProductModel = exports.Product = exports.PriceSpecification = exports.place = exports.Permit = exports.Person = exports.paymentMethod = exports.PaymentServiceProvider = exports.PaymentService = exports.Passport = exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.Note = exports.Message = exports.MerchantReturnPolicy = exports.Member = exports.EventSeries = exports.EventSellerMakesOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.CreativeWork = exports.ConfirmationNumber = exports.Comment = exports.Authorization = exports.CategoryCode = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOffer = exports.AdditionalProperty = exports.Action = exports.AccountTransaction = exports.AccountTitle = exports.AccountingReport = exports.Account = exports.AcceptedOffer = void 0;
13
+ exports.rateLimit = exports.Trip = exports.TransactionProcess = exports.TransactionNumber = exports.Transaction = exports.Ticket = exports.Telemetry = exports.Task = exports.StockHolder = exports.ServiceOutputIdentifier = exports.ServiceOutput = exports.SellerPaymentAccepted = exports.Seller = void 0;
14
14
  var AcceptedOffer;
15
15
  (function (AcceptedOffer) {
16
16
  let repo;
@@ -737,6 +737,19 @@ var Role;
737
737
  }
738
738
  Role.createInstance = createInstance;
739
739
  })(Role = exports.Role || (exports.Role = {}));
740
+ var Schedule;
741
+ (function (Schedule) {
742
+ let repo;
743
+ function createInstance(...params) {
744
+ return __awaiter(this, void 0, void 0, function* () {
745
+ if (repo === undefined) {
746
+ repo = (yield Promise.resolve().then(() => require('./repo/schedule'))).ScheduleRepo;
747
+ }
748
+ return new repo(...params);
749
+ });
750
+ }
751
+ Schedule.createInstance = createInstance;
752
+ })(Schedule = exports.Schedule || (exports.Schedule = {}));
740
753
  var Seller;
741
754
  (function (Seller) {
742
755
  let repo;
@@ -16,12 +16,6 @@ interface ICheckInReservationParams {
16
16
  * 予約番号で発券
17
17
  */
18
18
  reservationNumbers?: string[];
19
- reservationFor?: {
20
- /**
21
- * 集計対象イベントID
22
- */
23
- ids?: string[];
24
- };
25
19
  };
26
20
  purpose: {
27
21
  /**
@@ -44,7 +44,8 @@ function checkInReservation(params) {
44
44
  }
45
45
  }
46
46
  yield repos.reservation.checkInIfNot({ reservationNumber: { $in: params.object.reservationNumbers }, now });
47
- if (!settings.useExperimentalFeature) {
47
+ // support useNotificationCheckedInAsPackage(2024-11-06~)
48
+ if (!settings.useNotificationCheckedInAsPackage) {
48
49
  // 予約番号リストを予約IDリストに変換
49
50
  checkedInReservationIds = yield repos.reservation.searchIdsByReservationNumber({
50
51
  reservationNumber: { $in: params.object.reservationNumbers }
@@ -103,24 +104,6 @@ function reserveIfNotYet(params) {
103
104
  yield (0, confirmReservation_1.confirmReservation)({
104
105
  // optimize(2024-07-01~)
105
106
  potentialReserveAction: { object: { reservationNumber: reserveTransaction.transactionNumber } },
106
- // actionAttributesList: [{
107
- // project: reserveTransaction.project,
108
- // typeOf: <factory.actionType.ReserveAction>factory.actionType.ReserveAction,
109
- // object: {
110
- // typeOf: reserveTransaction.object.typeOf,
111
- // reservationNumber: reserveTransaction.object.reservationNumber,
112
- // reservationStatus: (typeof reserveTransaction.object.reservationStatus === 'string')
113
- // ? reserveTransaction.object.reservationStatus
114
- // : factory.reservationStatusType.ReservationPending,
115
- // reservationFor: {
116
- // id: String(reserveTransaction.object.reservationFor.id),
117
- // typeOf: reserveTransaction.object.reservationFor.typeOf,
118
- // optimized: true
119
- // } // optimize(2024-01-24~)
120
- // },
121
- // agent: reserveTransaction.project,
122
- // purpose: { typeOf: reserveTransaction.typeOf, id: reserveTransaction.id }
123
- // }],
124
107
  useOnReservationConfirmed: false,
125
108
  byTask: false
126
109
  })(repos, settings);
@@ -47,8 +47,7 @@ function onAuthorizationCreated(params) {
47
47
  let reservationIds = [];
48
48
  // 発券対象予約番号
49
49
  let reservationNumbers = [];
50
- // 発券対象イベントID
51
- let reservationForIds = [];
50
+ // let reservationForIds: string[] = []; // 発券対象イベントID
52
51
  const authorization = yield repos.code.findValidOneByCode({
53
52
  code: params.code,
54
53
  project: { id: params.project.id }
@@ -61,32 +60,17 @@ function onAuthorizationCreated(params) {
61
60
  reservationNumbers = yield repos.acceptedOffer.distinctValues({
62
61
  orderNumber: { $in: [orderNumber] }
63
62
  }, 'acceptedOffers.itemOffered.reservationNumber');
64
- reservationForIds = yield repos.acceptedOffer.distinctValues({
65
- orderNumber: { $in: [orderNumber] }
66
- }, 'acceptedOffers.itemOffered.reservationFor.id');
63
+ // reservationForIds = await repos.acceptedOffer.distinctValues(
64
+ // {
65
+ // orderNumber: { $in: [orderNumber] }
66
+ // },
67
+ // 'acceptedOffers.itemOffered.reservationFor.id'
68
+ // );
67
69
  }
68
70
  break;
69
71
  case 'OwnershipInfo':
70
72
  // 所有権に対する承認はいったん廃止したので、所有権のケースは処理不要(2024-08-21~)
71
73
  reservationIds = [];
72
- // const ownershipInfoId = authorization.object.id;
73
- // if (typeof ownershipInfoId === 'string' && ownershipInfoId.length > 0) {
74
- // const ownershipInfo = <Pick<factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood>, 'id' | 'typeOfGood'>>
75
- // await repos.ownershipInfo.projectFieldsById({ id: ownershipInfoId }, ['typeOfGood']);
76
- // // 予約に対する所有権であれば発券
77
- // if (ownershipInfo.typeOfGood.typeOf === factory.reservationType.EventReservation
78
- // || ownershipInfo.typeOfGood.typeOf === factory.reservationType.BusReservation) {
79
- // const reservationId = String(ownershipInfo.typeOfGood.id);
80
- // reservationIds = [reservationId];
81
- // const { reservationFor } = <{ reservationFor: { id: string } }>await repos.reservation.projectFieldsById<
82
- // factory.reservationType.EventReservation | factory.reservationType.BusReservation
83
- // >({
84
- // id: reservationId,
85
- // inclusion: ['reservationFor.id']
86
- // });
87
- // reservationForIds = [String(reservationFor.id)];
88
- // }
89
- // }
90
74
  break;
91
75
  default:
92
76
  // no op
@@ -95,8 +79,8 @@ function onAuthorizationCreated(params) {
95
79
  project: { id: params.project.id },
96
80
  object: {
97
81
  ids: reservationIds,
98
- reservationNumbers: reservationNumbers,
99
- reservationFor: { ids: reservationForIds }
82
+ reservationNumbers: reservationNumbers
83
+ // reservationFor: { ids: reservationForIds }
100
84
  },
101
85
  purpose: { code: params.code }
102
86
  })({
@@ -81,6 +81,7 @@ interface IOptions {
81
81
  };
82
82
  useAssetTransactionSyncProcessing: boolean;
83
83
  useExperimentalFeature: boolean;
84
+ useNotificationCheckedInAsPackage?: boolean;
84
85
  notification: IWebhookSettings;
85
86
  }
86
87
  /**
@@ -139,6 +140,7 @@ declare class Settings {
139
140
  };
140
141
  readonly useAssetTransactionSyncProcessing: boolean;
141
142
  readonly useExperimentalFeature: boolean;
143
+ readonly useNotificationCheckedInAsPackage: boolean;
142
144
  /**
143
145
  * 通知設定
144
146
  */
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "AggregationSettings", { enumerable: true, get: f
8
8
  */
9
9
  class Settings {
10
10
  constructor(options) {
11
- const { onEventChanged, onOrderStatusChanged, onResourceUpdated, onReservationStatusChanged, userPoolIdOld, userPoolIdNew, abortedTasksWithoutReport, numTryConfirmReserveTransaction, transaction, defaultSenderEmail, deliverOrderLimit, coa, gmo, movieticketReserve, useAssetTransactionSyncProcessing, useExperimentalFeature, notification } = options;
11
+ const { onEventChanged, onOrderStatusChanged, onResourceUpdated, onReservationStatusChanged, userPoolIdOld, userPoolIdNew, abortedTasksWithoutReport, numTryConfirmReserveTransaction, transaction, defaultSenderEmail, deliverOrderLimit, coa, gmo, movieticketReserve, useAssetTransactionSyncProcessing, useExperimentalFeature, useNotificationCheckedInAsPackage, notification } = options;
12
12
  this.onEventChanged = onEventChanged;
13
13
  this.onOrderStatusChanged = onOrderStatusChanged;
14
14
  this.onResourceUpdated = onResourceUpdated;
@@ -25,6 +25,7 @@ class Settings {
25
25
  this.movieticketReserve = movieticketReserve;
26
26
  this.useAssetTransactionSyncProcessing = useAssetTransactionSyncProcessing;
27
27
  this.useExperimentalFeature = useExperimentalFeature;
28
+ this.useNotificationCheckedInAsPackage = useNotificationCheckedInAsPackage === true;
28
29
  this.notification = notification;
29
30
  }
30
31
  }
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
- "@chevre/factory": "4.389.0-alpha.3",
14
+ "@chevre/factory": "4.389.0-alpha.5",
15
15
  "@cinerino/sdk": "10.16.0-alpha.6",
16
16
  "@motionpicture/coa-service": "9.5.0",
17
17
  "@motionpicture/gmo-service": "5.3.0",
@@ -108,5 +108,5 @@
108
108
  "postversion": "git push origin --tags",
109
109
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
110
110
  },
111
- "version": "22.6.0-alpha.5"
111
+ "version": "22.6.0-alpha.7"
112
112
  }