export type Rol = 'cliente' | 'barbero' | 'admin'
export type EstadoCita = 'pendiente' | 'confirmada' | 'cancelada' | 'completada'

export interface Perfil {
  id: string
  nombre: string
  telefono: string | null
  rol: Rol
  avatar_url: string | null
  created_at: string
  updated_at: string
}

export interface Barbero {
  id: string
  perfil_id: string | null
  nombre: string
  descripcion: string | null
  foto_url: string | null
  activo: boolean
  created_at: string
  horarios?: HorarioBarbero[]
}

export interface HorarioBarbero {
  id: string
  barbero_id: string
  dia_semana: number // 0=Dom, 1=Lun, ..., 6=Sab
  hora_inicio: string // "HH:MM"
  hora_fin: string    // "HH:MM"
  activo: boolean
}

export interface Servicio {
  id: string
  nombre: string
  descripcion: string | null
  duracion_min: number
  precio: number | null
  activo: boolean
  created_at: string
}

export interface Cita {
  id: string
  cliente_id: string
  barbero_id: string
  servicio_id: string
  fecha_inicio: string
  fecha_fin: string
  estado: EstadoCita
  notas: string | null
  google_event_id: string | null
  google_event_cliente: string | null
  recordatorio_enviado: boolean
  created_at: string
  updated_at: string
  // Joins
  perfil?: Perfil
  barbero?: Barbero
  servicio?: Servicio
}

export interface HistorialCorte {
  id: string
  cliente_id: string
  cita_id: string | null
  barbero_id: string | null
  servicio_id: string | null
  notas: string | null
  fecha: string
  created_at: string
  barbero?: Barbero
  servicio?: Servicio
}

export interface SlotDisponible {
  inicio: string // ISO string
  fin: string    // ISO string
  disponible: boolean
}
