export interface AdminCommande {
  id: number;
  uid: string;
  reference: string;
  statut: string;
  quantite: number;
  prixTotal: number;
  createdAt: string;
  userId: number | null;
  userNom: string | null;
  userEmail: string | null;
}

export interface AdminUser {
  uid: string;
  email: string;
  nom: string;
  telephone: string;
  type: string;
  actif: boolean;
  roles: string[];
  createdAt: string;
}

export interface AdminEspacePub {
  id: number;
  volumeSacs: number;
  dureeMois: number;
  montant: number;
  statut: string;
  dateDebut: string;
  dateFin: string;
  userUid?: string;
  userNom?: string;
  userEmail?: string;
  createdAt: string;
}

export interface AdminDesign {
  uid: string;
  fichierUrl: string;
  miniatureUrl: string | null;
  statut: string;
  motifRejet: string | null;
  commandeUid: string | null;
  createdAt: string;
}

export interface AdminLivraison {
  id: number;
  adresse: string;
  statut: string;
  dateEstimee: string | null;
  dateLivraison: string | null;
  notes: string | null;
  commercialId: number | null;
  commercialNom: string | null;
}

export interface AdminStock {
  id: number;
  matiere: string;
  quantite: number;
  unite?: string;
  seuilAlerte: number;
  updatedAt: string;
}

export interface AdminArticle {
  id: number;
  titre: string;
  slug: string;
  auteur: string;
  contenu: string;
  imageUrl: string | null;
  publie: boolean;
  createdAt: string;
}

export interface AdminSlide {
  id: number;
  titre: string;
  sousTitre: string;
  imageUrl: string;
  ctaPrimaireLabel: string | null;
  ctaPrimaireLien: string | null;
  ctaSecondaireLabel: string | null;
  ctaSecondaireLien: string | null;
  actif: boolean;
  ordre: number;
}

export interface AdminTemoignage {
  id: number;
  auteur: string;
  entreprise: string | null;
  photoUrl: string | null;
  contenu: string;
  note: number;
  actif: boolean;
  createdAt: string;
}

export interface AdminPartenaire {
  id: number;
  nom: string;
  type: string;
  logoUrl: string | null;
  siteWeb: string | null;
  actif: boolean;
}

export interface AdminMessage {
  id: number;
  nom: string;
  email: string;
  telephone: string | null;
  sujet: string;
  message: string;
  lu: boolean;
  traite: boolean;
  createdAt: string;
}

export interface PaginatedResult<T> {
  items: T[];
  total: number;
  page: number;
  limit?: number;
  totalPages: number;
}
