export interface IngresoRegimen {
  regimenClave: string;
  regimenDescripcion: string;
  monto: number;
}

export interface EgresoRegimen {
  regimenClave: string;
  regimenDescripcion: string;
  monto: number;
}

export interface IvaBalanceRegimen {
  regimenClave: string;
  regimenDescripcion: string;
  monto: number;
}

export interface KpiData {
  ingresos: number;
  ingresosPorRegimen: IngresoRegimen[];
  egresos: number;
  egresosPorRegimen: EgresoRegimen[];
  adquisicionMercancias: number;
  adquisicionMercanciasPorRegimen?: { regimenClave: string; monto: number }[];
  utilidad: number;
  margen: number;
  ivaBalance: number;
  ivaBalancePorRegimen: IvaBalanceRegimen[];
  ivaAFavorAcumulado: number;
  ivaAFavorHistorico: number;
  cfdisEmitidos: number;
  cfdisEmitidosPorRegimen: { regimen: string; total: number }[];
  cfdisRecibidos: number;
  cfdisRecibidosPorRegimen: { regimen: string; total: number }[];
}

export interface IngresosEgresosData {
  mes: string;
  ingresos: number;
  egresos: number;
}

export interface ResumenFiscal {
  ivaPorPagar: number;
  ivaAFavor: number;
  isrPorPagar: number;
  declaracionesPendientes: number;
  proximaObligacion: {
    titulo: string;
    fecha: string;
  } | null;
}

export interface Alerta {
  id: number;
  tipo: 'vencimiento' | 'discrepancia' | 'iva_favor' | 'declaracion';
  titulo: string;
  mensaje: string;
  prioridad: 'alta' | 'media' | 'baja';
  fechaVencimiento: string | null;
  leida: boolean;
  resuelta: boolean;
  createdAt: string;
}

export type PeriodoFiltro = 'semana' | 'mes' | 'trimestre' | 'año' | 'custom';

export interface DashboardFilters {
  periodo: PeriodoFiltro;
  fechaInicio?: string;
  fechaFin?: string;
}
