import { scalar } from "./base.scalar"; import { entity } from "./base.entity"; import { pair } from "./base.pair"; import { orderEntity } from "./orderEntity"; import { projectEntity } from "./projectEntity"; import { profileEntity } from "./profileEntity"; import { exchangeEnum } from "./exchangeEnum"; import { planEntity } from "./planEntity"; import { timeSpanEnum } from "./timeSpanEnum"; import { subscriptionStatusEnum } from "./subscriptionStatusEnum"; export declare namespace subscriptionEntity { type Id = scalar.Uuid; interface Doc extends entity.Doc, Purchased, Trial, Charging, Setup { name?: scalar.Title; _name?: scalar.Alpha; project?: projectEntity.Id; profile?: profileEntity.Id; plan?: planEntity.Id; status?: subscriptionStatusEnum.Id; paymentOrderId?: scalar.Alpha; current?: scalar.Boolean; rank?: scalar.Integer; allStartedAt?: scalar.IsoDatetime; allFinishedAt?: scalar.IsoDatetime; refreshedAt?: scalar.IsoDatetime; transactions?: Record; } interface Filter extends entity.Filter { activated?: scalar.Boolean; } interface Service extends entity.Service { } interface Setup { setupExchange?: exchangeEnum.Id; setupAmount?: scalar.Float; } interface Purchased { payInterval?: timeSpanEnum.Id; paySize?: scalar.Integer; payExchange?: exchangeEnum.Id; payAmount?: scalar.Float; payDays?: scalar.Float; payDaily?: scalar.Float; payTimes?: scalar.Integer; payStartedAt?: scalar.IsoDatetime; payFinishedAt?: scalar.IsoDatetime; payRenewedAt?: scalar.IsoDatetime; payCanceledAt?: scalar.IsoDatetime; } interface Trial { trialExists?: scalar.Boolean; trialInterval?: timeSpanEnum.Id; trialSize?: scalar.Integer; trialExchange?: exchangeEnum.Id; trialAmount?: scalar.Float; trialDays?: scalar.Float; trialDaily?: scalar.Float; trialTimes?: scalar.Integer; trialStartedAt?: scalar.IsoDatetime; trialFinishedAt?: scalar.IsoDatetime; } interface Charging { chargingExists?: scalar.Boolean; chargingInterval?: timeSpanEnum.Id; chargingSize?: scalar.Integer; chargingStartedAt?: scalar.IsoDatetime; chargingFinishedAt?: scalar.IsoDatetime; chargingSuccessAt?: scalar.IsoDatetime; chargingStoppedAt?: scalar.IsoDatetime; } type Table = entity.Wrapper; interface CmsDetailed { profile?: profileEntity.Doc; subscription?: Doc; plan?: planEntity.Doc; refresh?: scalar.Boolean; } interface View extends entity.View { name?: scalar.Title; plan?: planEntity.Pair; timeSpan?: timeSpanEnum.Pair; exchange?: exchangeEnum.Pair; price?: scalar.Float; setupFee?: scalar.Float; totalFee?: scalar.Float; startedAt?: scalar.IsoDatetime; finishedAt?: scalar.IsoDatetime; status?: subscriptionStatusEnum.Pair; order?: orderEntity.Pair; current?: scalar.Boolean; } interface Pair extends pair.Core { } type IdOrPair = Id | Pair; interface CreateDto { plan?: planEntity.Id; order?: orderEntity.Id; startedAt?: scalar.IsoDatetime; finishedAt?: scalar.IsoDatetime; remote?: scalar.AnyObject; timeSpan?: timeSpanEnum.Id; exchange?: exchangeEnum.Id; price?: scalar.Float; setupFee?: scalar.Float; totalFee?: scalar.Float; } interface SetStatusDto { id: Id; state?: subscriptionStatusEnum.Id; status?: subscriptionStatusEnum.Id; remote?: scalar.AnyObject; } interface SetOrderDto { id: Id; order?: orderEntity.Id; remote?: scalar.AnyObject; } }