import { RoutingMethod } from '@/constants/websiteBuilder'
import { IContactNumber, IdObject } from './common'

interface Domain {
  domain: string
  domainType: string
}

interface LeadRoutingType {
  method: RoutingMethod
  userId: string
  teamId: string
  notifyAdmin: boolean
}

interface Company extends IdObject {
  id: string
  name: string
  status: 'active' | 'inactive' | string
}
interface MakanifySiteResponse {
  contactNumber: IContactNumber;
  whatsappNumber: IContactNumber;
  subdomainName: string;
  template: string;
  leadRoutingType: RoutingMethod;
  teamId: IdObject;
  userId: IdObject;
  heroBannerTitle: string;
  heroBannerDesc: string;
  bannerImg: string;
  aboutTitle: string;
  aboutDesc: string;
  aboutImg: string;
  serviceTitle: string;
  serviceDesc: string;
  companyLogo?: string;
  createdBy: IdObject;
  updatedBy: IdObject;
  company: Company;
  companyName: string;
  leadNotifyAdmin: boolean;
  phoneNumber: string;
  whatsapp: string;
  id: string;
  leadRoutingUserId: string;
  isPublished: boolean;
  findPropertyTitle: string;
  findPropertyDesc: string;
  sellPropertyTitle: string;
  sellPropertyDesc: string;
  rentPropertyTitle: string;
  rentPropertyDesc: string;
}

type TransformBodyReturnType =
  | {
      template: string
      company: Company
      companyName: string
      subdomainName: string
    }
  | {
      template: string
      teamId: string
      leadRoutingType: string
      leadRoutingUserId: string
      leadNotifyAdmin: string
    }
  | {
      template: string
      contactNumber: { dialCode: number; number: string }
      whatsappNumber: { dialCode: number; number: string }
      heroBannerTitle: string
      heroBannerDesc: string
      bannerImg: string
      aboutTitle: string
      aboutDesc: string
      aboutImg: string
      isPublished: boolean
      serviceTitle: string
      serviceDesc: string
    }
