@sourceloop/ctrl-plane-subscription-service
Version:
Subscription management microservice for SaaS control plane.
28 lines (27 loc) • 1.49 kB
TypeScript
import { Count, Filter, FilterExcludingWhere, Where } from '@loopback/repository';
import { Subscription } from '../models';
import { BillingCycleRepository, PlanRepository, SubscriptionRepository } from '../repositories';
export declare class SubscriptionController {
subscriptionRepository: SubscriptionRepository;
planRepository: PlanRepository;
billingCycleRepository: BillingCycleRepository;
constructor(subscriptionRepository: SubscriptionRepository, planRepository: PlanRepository, billingCycleRepository: BillingCycleRepository);
create(subscription: Omit<Subscription, 'id' | 'startDate' | 'endDate'>): Promise<Subscription>;
private _unitMap;
count(where?: Where<Subscription>): Promise<Count>;
find(filter?: Filter<Subscription>): Promise<Subscription[]>;
expireSoonSubscription(filter?: Filter<Subscription>): Promise<{
id: string;
daysRemainingToExpiry: number;
subscriberId: string;
}[]>;
expiredSubscription(dayCount: number, filter?: Filter<Subscription>): Promise<{
subscriptionId: string;
subscriberId: string;
}[]>;
updateAll(subscription: Subscription, where?: Where<Subscription>): Promise<Count>;
findById(id: string, filter?: FilterExcludingWhere<Subscription>): Promise<Subscription>;
updateById(id: string, subscription: Subscription): Promise<void>;
replaceById(id: string, subscription: Subscription): Promise<void>;
deleteById(id: string): Promise<void>;
}