skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
70 lines • 2.02 kB
TypeScript
import { PrismaClient } from '@prisma/client';
export interface TrialStatus {
isActive: boolean;
daysRemaining: number;
endDate: Date | null;
isExpired: boolean;
isWarningSent: boolean;
canExtend: boolean;
}
export interface TrialExtensionRequest {
organizationId: string;
daysToExtend: number;
reason: string;
requestedBy: string;
}
export declare class TrialService {
private static instance;
private prisma;
private constructor();
static getInstance(prisma: PrismaClient): TrialService;
/**
* Inicializa los trabajos cron para monitorear trials
*/
private initializeCronJobs;
/**
* Inicia el trial para una organización
*/
startTrial(organizationId: string, trialDays?: number): Promise<void>;
/**
* Obtiene el estado actual del trial
*/
getTrialStatus(organizationId: string): Promise<TrialStatus>;
/**
* Extiende el trial de una organización
*/
extendTrial(request: TrialExtensionRequest): Promise<void>;
/**
* Convierte un trial a suscripción pagada
*/
convertTrialToPaid(organizationId: string, planId: string): Promise<void>;
/**
* Verifica y bloquea organizaciones con trial expirado
*/
blockExpiredTrials(): Promise<void>;
/**
* Envía advertencias a organizaciones próximas a expirar
*/
sendTrialWarnings(): Promise<void>;
/**
* Verifica trials expirados y los marca como expirados
*/
checkExpiredTrials(): Promise<void>;
/**
* Registra una acción del trial
*/
private logTrialAction;
/**
* Obtiene el historial de acciones del trial
*/
getTrialHistory(organizationId: string): Promise<any[]>;
/**
* Verifica si una organización puede acceder al sistema
*/
canAccess(organizationId: string): Promise<boolean>;
/**
* Obtiene estadísticas de trials
*/
getTrialStats(): Promise<any>;
}
//# sourceMappingURL=TrialService.d.ts.map