@sourceloop/ctrl-plane-tenant-management-service
Version:
Tenant Management microservice for SaaS control plane
102 lines (93 loc) • 1.86 kB
text/typescript
import {AnyObject} from '@loopback/repository';
import {IServiceConfig} from '@sourceloop/core';
export interface ISubscription {
deleted?: boolean;
deletedOn?: Date;
deletedBy?: string;
createdOn?: Date;
modifiedOn?: Date;
createdBy?: string;
modifiedBy?: string;
id: string;
subscriberId: string;
startDate: string;
endDate: string;
status: number;
planId: string;
plan?: IPlan;
}
// sonarignore:start
export interface ITenantManagementServiceConfig extends IServiceConfig {
//do nothing
}
export type SubscriptionCreationType = Omit<
ISubscription,
| 'id'
| 'deleted'
| 'deletedOn'
| 'deletedBy'
| 'createdOn'
| 'modifiedOn'
| 'createdBy'
| 'modifiedBy'
| 'plan'
>;
export type SubscriptionUpdationType = Partial<
Omit<
ISubscription,
| 'id'
| 'deleted'
| 'deletedOn'
| 'deletedBy'
| 'createdOn'
| 'modifiedOn'
| 'createdBy'
| 'modifiedBy'
| 'plan'
>
>;
export interface IBillingCycle {
deleted: boolean;
deletedOn?: string;
deletedBy?: string;
createdOn: string;
modifiedOn?: string;
createdBy: string;
modifiedBy?: string;
id: string;
cycleName: string;
duration: number;
durationUnit: string;
description: string;
}
export interface ICurrency {
id: string;
currencyCode: string;
currencyName: string;
symbol: string;
country: string;
}
export interface IPlan {
deleted?: boolean;
deletedOn?: Date;
deletedBy?: string;
createdOn?: Date;
modifiedOn?: Date;
createdBy?: string;
modifiedBy?: string;
id: string;
name: string;
description: string;
price: number;
currencyId: string;
metaData: IMetaData;
tier: string;
size?: string;
sizeConfig?: AnyObject;
billingCycleId: string;
billingCycle?: IBillingCycle;
currency?: ICurrency;
}
export interface IMetaData {
pipelineName: string;
}