import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class SubscriptionExpirationDateService { getSubscriptionStatus(subscriptionStatus: string): string { const expiration = new Date(subscriptionStatus); const now = new Date(); const daysToExpiration = Math.ceil( (expiration.getTime() - now.getTime()) / (1000 * 60 * 60 * 24) ); const daysSinceExpiration = Math.ceil( (now.getTime() - expiration.getTime()) / (1000 * 60 * 60 * 24) ); const formatDate = (date: Date) => { const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); const year = date.getFullYear(); return `${day}-${month}-${year}`; }; if (daysToExpiration > 7) { return `aktywny do ${formatDate(expiration)}`; } else if (daysToExpiration >= 0 && daysToExpiration <= 7) { return `ostatnie ${daysToExpiration} dni aktywacji`; } else if (daysSinceExpiration <= 7) { return `nieaktywny od ${daysSinceExpiration} dni`; } else { return `nieaktywny od ${formatDate(expiration)}`; } } getSubscriptionStatusMessage(subscriptionStatus: string): string { const expiration = new Date(subscriptionStatus); const now = new Date(); const daysToExpiration = Math.ceil( (expiration.getTime() - now.getTime()) / (1000 * 60 * 60 * 24) ); if (daysToExpiration >= 7) { return 'Aktywny'; } else if (daysToExpiration >= 1 && daysToExpiration <= 7) { return 'Na wygaśnięciu'; } else { return 'Nieaktywny'; } } getSubscriptionStatusColor(subscriptionStatus: string): string { const expiration = new Date(subscriptionStatus); const now = new Date(); const daysToExpiration = Math.ceil( (expiration.getTime() - now.getTime()) / (1000 * 60 * 60 * 24) ); if (daysToExpiration >= 7) { return '#22C55E'; } else if (daysToExpiration >= 1 && daysToExpiration <= 7) { return '#F97316'; } else { return '#9CA3AF'; } } getSubscriptionTypeColor( subscriptionType: string, subscriptionStatus?: string ) { if(subscriptionStatus && subscriptionType){ const expiration = new Date(subscriptionStatus); const now = new Date(); if (subscriptionType === 'Free' && expiration > now) { return '#16A34A'; } else if (subscriptionType === 'Pro' && expiration > now) { return '#0D9488'; } else if (subscriptionType === 'Free' && expiration < now) { return '#16A34A80'; } else { return '#0D948880'; } }else{ if (subscriptionType === 'Free') { return '#16A34A'; } else if (subscriptionType === 'Pro') { return '#0D9488'; } else { return '#16A34A'; } } } }