feat(frontend): lifecycle status, wallet balance, admin billing UI

- Wallet balance display in dashboard header
- Lifecycle status badges (color-coded) in apps list
- Plan expiry countdown column
- Admin apps: suspended/pending-deletion summary cards
- Admin billing: lifecycle settings management
- Updated TypeScript types for lifecycle and billing
This commit is contained in:
keyhan
2026-04-22 16:44:58 +03:30
parent 5f6eccc483
commit e10f9c5235
8 changed files with 636 additions and 45 deletions
+23
View File
@@ -39,6 +39,13 @@ export interface Application {
latestImageTag?: string;
subdomain?: string;
deployments?: Deployment[];
// Billing & Lifecycle
planId?: string;
billingCycle?: BillingCycle;
lifecycleStatus?: AppLifecycleStatus;
planExpiresAt?: string;
suspendedAt?: string;
scheduledDeletionAt?: string;
createdAt: string;
updatedAt: string;
}
@@ -67,6 +74,8 @@ export type DeploymentStatus =
| 'stopped'
| 'deleting';
export type AppLifecycleStatus = 'active' | 'suspended' | 'pending_deletion' | 'deleted';
export interface Cluster {
id: string;
name: string;
@@ -325,3 +334,17 @@ export interface K8sRevisionData {
revisions: K8sRevision[];
currentRevision: number;
}
// ─── Lifecycle Settings ─────────────────────────────
export interface LifecycleCycleSettings {
deleteAfterMs: number;
deleteAfterHours?: number;
deleteAfterDays?: number;
}
export interface LifecycleSettings {
hourly: LifecycleCycleSettings;
monthly: LifecycleCycleSettings;
yearly: LifecycleCycleSettings;
}