export type DashboardStats = {
    overdue: number;
    dueThisWeek: number;
    enAttenteClient: number;
    enCours: number;
};

export type DashboardDeclaration = {
    id: number;
    title: string;
    type: string;
    typeLabel: string;
    clientName: string;
    assigneeName: string | null;
    status: string;
    statusLabel: string;
    dueDate: string | null;
    showUrl: string;
    nudgeUrl: string | null;
};

export type StatCardLink = {
    label: string;
    count: number;
    status: 'danger' | 'warning' | 'info' | 'success';
    href: string;
};

export type DashboardAlert = {
    id: number;
    severity: 'critical' | 'warning' | 'info';
    clientName: string;
    declarationType: string;
    typeLabel: string;
    daysValue: number;
    daysLabel: string;
    showUrl: string;
};

export type ActivityEvent = {
    id: number;
    actorName: string;
    actorInitials: string;
    description: string;
    targetUrl: string | null;
    targetLabel: string | null;
    timestamp: string;
    eventType: string;
};

export type DashboardProps = {
    stats: DashboardStats | null;
    statCards: StatCardLink[];
    declarations: DashboardDeclaration[];
    alerts: DashboardAlert[];
    activities: ActivityEvent[];
    workspaceName: string | null;
    roleLabel: string | null;
    isWorker: boolean;
    canNudge: boolean;
    declarationsUrl: string | null;
    clientsUrl: string | null;
    viewAllAlertsUrl: string | null;
};
