import { AppointmentEventByClient } from "../../Models/Appointments/Appointments.Interface";

export interface GetDashboardSummaryParams {
    sessionUser: string;
}

export interface DashboardMetrics {
    organizationsCount: number;
    employeesCount: number;
    clientsCount: number;
    appointmentsCount: number;
    servicesCount: number;
    repeatsCount: number;
}

export interface DashboardSummaryResult {
    role: "ADMIN" | "EMPLOYEE" | "NONE";
    globalMetrics?: DashboardMetrics;
    personalAgenda: AppointmentEventByClient[];
}

export interface GetDashboardFinancialsParams {
    sessionUser: string;
    companyId: string;
    timeframe: "week" | "month" | "year";
    employeeId?: string;
}

export interface IncomeDataPoint {
    date: string;
    amount: number;
}

export interface DashboardFinancialsResult {
    currentPeriodTotal: number;
    previousPeriodTotal: number;
    currentPeriodData: IncomeDataPoint[];
    unpaidToday: number;
}

export interface GetCompanyMetricsParams {
    sessionUser: string;
    companyId: string;
}

export interface CompanyMetricsResult {
    subscription: any; // ISubscriptionInfo is in PlanSubscriptions.interface but we'll import if needed, or leave it as any to avoid circular deps if they exist. Actually, let's use any for now, or import it.
    metrics: DashboardMetrics;
    isOwner: boolean;
}
