export interface AssistantAssignedNumberResponse {
  available: boolean
  phoneNumber: null | string
}

export interface AssistantAssignedSMSNumberResponse {
  available: boolean
  phoneNumber: null | string
  totalSMS: number
  totalConversations: number
}

export interface PhoneNumberOption {
  friendlyName: string
  phoneNumber: string
  lata: null | string
  locality: string
  rateCenter: null | string
  latitude: null | number
  longitude: null | number
  region: null | string
  postalCode: null | string
  isoCountry: string
  addressRequirements: string
  beta: boolean
  capabilities: {
    MMS: boolean
    SMS: boolean
    voice: boolean
  }
  credits_required: number
  country: string
}

export interface AvailablePhoneNumbersResponse {
  country: string
  type: string
  count: number
  pricing: PhoneNumberPrice & { base_price: number; current_price: number; type: string }
  numbers: PhoneNumberOption[]
}

export interface PhoneNumberPrice {
  number_type: string
  credits_required: number
  _id?: string
}

export interface PhoneNumberPricing {
  country: string
  isoCountry: string
  phoneNumberPrices: PhoneNumberPrice[]
  createdAt?: string
  updatedAt?: string
  __v?: number
}

export interface AssistantVoice {
  id: string
  name: string
  gender: 'Male' | 'Female'
  type: string
}

export interface AssistantVoiceLanguage {
  label: string
  voices: AssistantVoice[]
}

export interface AssistantVoiceMapping {
  _id: string
  provider: string
  languages: Record<string, AssistantVoiceLanguage>
  createdAt: string
  updatedAt: string
  __v: number
}

export interface AssistantVoiceSettings {
  voice_settings: {
    provider: string
    language: string
    voice: string
    voiceGender: string
    voiceType: string
  }
  welcome_message: string
}

export interface AssistantVoiceSettingsResponse extends AssistantVoiceSettings {
  _id: string
  salonId: string
  createdAt: string
  updatedAt: string
  __v: number
}


export interface WhatsAppConnectionStatus {
  connected: boolean
  status: string
  phone: string | null
  profile: any | null
}

export interface InstagramConnectionStatus {
  connected: boolean
  status: string
  instagramUserId?: string
  profile?: {
    username: string | null
    name: string | null
    profilePictureUrl: string | null
    biography: string | null
    website: string | null
    followersCount: number | null
    followsCount: number | null
    mediaCount: number | null
    email?: string | null
  } | null
  message?: string
}
