@sourceloop/ctrl-plane-tenant-management-service
Version:
Tenant Management microservice for SaaS control plane
68 lines (67 loc) • 1.85 kB
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;
}
export interface ITenantManagementServiceConfig extends IServiceConfig {
}
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;
}