UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

137 lines (136 loc) 3.78 kB
import type { Algorithm } from 'jsonwebtoken'; import { IndexDefinition, IndexOptions, Model, Schema, SchemaDefinition } from 'mongoose'; import * as factory from '../../../factory'; interface IOnOrderStatusChanged { /** * AggService通知先 */ informOrder?: factory.project.IInformParams[]; } interface IOnReservationStatusChanged { /** * AggService通知先 */ informReservation?: factory.project.IInformParams[]; } interface IOnEventChanged { informEvent2agg?: factory.project.IInformParams[]; } interface IOnTransactionStatusChanged { /** * AggService通知先 */ informTransaction?: factory.project.IInformParams[]; } interface IStorageSettings { /** * 取引保管期間(Confirmed) * default:365 */ transactionConfirmedInDays?: number; /** * 取引保管期間(Canceled) * default:7 */ transactionCanceledInDays?: number; authorizationInDays?: number; actionInDays?: number; assetTransactionInDays?: number; taskInDays?: number; eventInDays?: number; /** * イベント終了日時からn日後まで座席をロックする */ stockHoldAfterEventEndInDays?: number; } interface IQuotaSettings { codeExpiresInSecondsDefault?: number; codeExpiresInSecondsMax?: number; placeOrderExpiresInSecondsMax?: number; placeOrderExpiresInSecondsMin?: number; } interface ITriggerWebhookSettings { /** * リクエストタイムアウト */ timeout?: number; useFetchAPI?: boolean; /** * 通知署名の鍵 */ secretKey?: string; /** * 固有署名ヘッダー識別子 */ headerIdentifier?: string; retryCountMax?: number; retryIntervalInMS?: number; } interface IWaiterSettings { disabled?: boolean; passportUnavailable?: boolean; passportIssuers: string[]; secret: string; } export interface IJWTSetting { /** * トークン生成鍵 */ secret: string; /** * トークン検証時の発行者リスト */ issuers: string[]; version: string; payloadTypPrefix: string; /** * auth.apisによるトークン発行時のissuer */ issuer: string; /** * auth.apisのトークン発行エンドポイント */ issueEndpoint: string; /** * トークン署名アルゴリズム */ algorithm: Algorithm; } export interface ISetting { defaultSenderEmail?: string; jwt?: IJWTSetting; onEventChanged?: IOnEventChanged; onOrderStatusChanged: IOnOrderStatusChanged; onReservationStatusChanged?: IOnReservationStatusChanged; onResourceUpdated?: { informResource?: factory.project.IInformParams[]; }; onTransactionStatusChanged?: IOnTransactionStatusChanged; project: { id: string; typeOf: factory.organizationType.Project; }; quota?: IQuotaSettings; storage?: IStorageSettings; /** * 通知設定 */ triggerWebhook?: ITriggerWebhookSettings; useInformResourceTypes?: string[]; userPoolIdOld?: string; userPoolIdNew?: string; waiter?: IWaiterSettings; useMongoAsStockHolder?: boolean; useMongoAsStockHolderProjects?: string[]; useMongo4confirmationNumberFrom?: Date; useMongo4orderNumberFrom?: Date; useMongo4transactionNumberFrom?: Date; } type IDocType = ISetting; type IModel = Model<IDocType>; type ISchemaDefinition = SchemaDefinition<IDocType>; type ISchema = Schema<IDocType, IModel, {}, {}, {}, {}, ISchemaDefinition, IDocType>; declare const modelName = "Setting"; declare const indexes: [d: IndexDefinition, o: IndexOptions][]; declare function createSchema(): ISchema; export { createSchema, IModel, indexes, modelName };