import type { CompanyProfileResponse } from "@/services/companies.service";

export interface ProfileResponse {
  companyId: string;
  companyName: string;
  companyType: string;
  nationality: string | null;
  companyProfiles: CompanyProfileResponse[];
  companyEmail: string | null;
  companyPhone: string | null;
  companyLocation: string;
  companyAddress: string | null;
  tinNumber: string;
  vatNumber: string | null;
  fanNumber: string | null;
  licenceNumber?: string | null;
  statusDescription?: string | null;
  dateRegistered?: string | null;
  renewedFrom?: string | null;
  renewalDate?: string | null;
  renewedTo?: string | null;
  region?: string | null;
  zone?: string | null;
  woreda?: string | null;
  kebele?: string | null;
  houseNo?: string | null;
  etradePhone?: string | null;
  contactPersonName: string | null;
  contactPersonPosition: string | null;
  contactPersonEmail: string | null;
  contactPersonPhone: string | null;
  /** Phone that passed SMS OTP verification (resumes the verify step's state). */
  contactVerifiedPhone: string | null;
  generalManagerName: string | null;
  generalManagerEmail: string | null;
  generalManagerPhone: string | null;
  poaName: string | null;
  poaPhone: string | null;
  poaEmail: string | null;
  poaLocation: string | null;
  poaAddress: string | null;
  profileId: string;
  /**
   * Open profile-edit review. `pending` → the settings page is read-only until an
   * admin decides; `rejected` → the note explains why and the forms prefill the
   * declined values so the customer can amend & resubmit.
   */
  reviewStatus?: "pending" | "rejected" | null;
  reviewNote?: string | null;
  pendingChanges?: Record<string, any> | null;
}

export interface UpdateProfilePayload {
  nationality?: "ethiopian" | "foreign";
  companyName?: string;
  companyEmail?: string;
  companyPhone?: string;
  companyLocation?: string;
  companyAddress?: string;
  tin?: string;
  vatNumber?: string;
  fanNumber?: string;
  licenceNumber?: string;
  statusDescription?: string;
  dateRegistered?: string;
  renewedFrom?: string;
  renewalDate?: string;
  renewedTo?: string;
  region?: string;
  zone?: string;
  woreda?: string;
  kebele?: string;
  houseNo?: string;
  etradePhone?: string;
  contactPersonName?: string;
  contactPersonPosition?: string;
  contactPersonEmail?: string;
  contactPersonPhone?: string;
  contactVerifiedPhone?: string;
  generalManagerName?: string;
  generalManagerEmail?: string;
  generalManagerPhone?: string;
  poaName?: string;
  poaPhone?: string;
  poaEmail?: string;
  poaLocation?: string;
  poaAddress?: string;
}
