Improve GDPR implementation

This commit is contained in:
Urtzi Alfaro
2025-10-16 07:28:04 +02:00
parent dbb48d8e2c
commit b6cb800758
37 changed files with 4876 additions and 307 deletions

View File

@@ -299,6 +299,53 @@ export class SubscriptionService {
doesAnalyticsLevelMeetMinimum(level: AnalyticsLevel, minimumRequired: AnalyticsLevel): boolean {
return ANALYTICS_HIERARCHY[level] >= ANALYTICS_HIERARCHY[minimumRequired];
}
/**
* Cancel subscription - Downgrade to read-only mode
*/
async cancelSubscription(tenantId: string, reason?: string): Promise<{
success: boolean;
message: string;
status: string;
cancellation_effective_date: string;
days_remaining: number;
read_only_mode_starts: string;
}> {
return apiClient.post('/subscriptions/cancel', {
tenant_id: tenantId,
reason: reason || ''
});
}
/**
* Reactivate a cancelled or inactive subscription
*/
async reactivateSubscription(tenantId: string, plan: string = 'starter'): Promise<{
success: boolean;
message: string;
status: string;
plan: string;
next_billing_date: string | null;
}> {
return apiClient.post('/subscriptions/reactivate', {
tenant_id: tenantId,
plan
});
}
/**
* Get subscription status including read-only mode info
*/
async getSubscriptionStatus(tenantId: string): Promise<{
tenant_id: string;
status: string;
plan: string;
is_read_only: boolean;
cancellation_effective_date: string | null;
days_until_inactive: number | null;
}> {
return apiClient.get(`/subscriptions/${tenantId}/status`);
}
}
export const subscriptionService = new SubscriptionService();