export type DashboardPeriod = "day" | "week" | "month" | "year" | "custom";

export type DashboardSeriesPoint = {
  day: string;
  clients: number;
  revenue: number;
  tickets: number;
  quotes: number;
};

export type DashboardStats = {
  clients: number;
  clientsNew: number;
  clientsChange: number;
  companies: number;
  companiesActive: number;
  apps: number;
  appsPublished: number;
  appsInDev: number;
  openTickets: number;
  ticketsProgress: number;
  ticketsResolved: number;
  revenueMonth: number;
  revenueDay: number;
  revenuePeriod: number;
  revenueChange: number;
  mrr: number;
  conversionRate: number;
  quotesPeriod: number;
};

export type DashboardOverview = {
  period: DashboardPeriod;
  dateFrom?: string;
  dateTo?: string;
  stats: DashboardStats;
  sparklines: {
    clients: number[];
    revenue: number[];
    tickets: number[];
    quotes: number[];
  };
  series: DashboardSeriesPoint[];
  recentQuotes: DashboardActivityQuote[];
  recentClients: DashboardActivityClient[];
  recentTickets: DashboardActivityTicket[];
  recentPayments: DashboardActivityPayment[];
  ticketsByDay: { day: string; total: number }[];
};

export type DashboardActivityClient = {
  id: number;
  name: string;
  email: string;
  avatar?: string | null;
  status: string;
  createdAt?: string;
};

export type DashboardActivityTicket = {
  id: number;
  subject: string;
  client: string;
  email?: string;
  avatar?: string | null;
  status: string;
  priority?: string;
  createdAt?: string;
};

export type DashboardActivityPayment = {
  id: number;
  client: string;
  avatar?: string | null;
  amount: number;
  status: string;
  createdAt?: string;
};

export type DashboardActivityQuote = {
  id: number;
  client: string;
  email?: string;
  avatar?: string | null;
  tipo: string;
  status: string;
  value: string;
  amount?: number;
  createdAt?: string;
};
