export enum ClientStatus {
  NEW = 'new',
  ACTIVE = 'active',
  INACTIVE = 'inactive',
}

export interface CreateClientPayload {
  name: string
  email?: string
  phone?: string
  status: ClientStatus | string
  description?: string
}

// Client returned by the API (GET). Extends the payload with database/meta fields.
export interface Client extends CreateClientPayload {
  clientId: string
  totalVisits: number
  totalSpent: number
  createdAt: string
  updatedAt: string
  __v?: number
}

// Convenience alias for arrays returned by list endpoints
// Convenience alias for arrays returned by list endpoints
export type ClientsResponse = Client[] | {
  data: Client[]
  meta: {
    page: number
    limit: number
    total: number
    totalPages: number
    active?: number
    inactive?: number
    new?: number
  }
}

export interface CallLog {
  _id: string
  summary: string
  duration: number
  created_at: number
}

export interface WhatsAppMessage {
  _id: string
  role: 'user' | 'assistant'
  text: string
  created_at: number
}

export interface WhatsAppSession {
  sessionId: string
  startedAt: string
  endedAt: string
  messageCount: number
  messages?: WhatsAppMessage[]
}
