export interface ClientInfoAttributes {
  FirstName: string;
  LastName: string;
  D_O_B__c: string;
  Suffix: string;
  MailingStreet: string;
  MailingCity: string;
  MailingState: string;
  MailingPostalCode: number;
  OtherStreet: string;
  OtherCity: string;
  OtherCountry: string;
  OtherPostalCode: number;
  Status__c: string;
  Billing_Status_Code_Hidden__c: string;
}

export interface ClientInfoProps {
  id: number;
  salesforce_id: string;
  ssn: string;
  email: string;
  mobile_phone: string;
  joint_customer_sf_id: string | null;
  client_key: string;
  attributes: ClientInfoAttributes;
  segments?: {
    id: number;
    type: string;
    name: string;
    description: string | null;
    conditions: {
      rules: [
        {
          field: string;
          operator: string;
          value: string | number | boolean | null;
        },
      ];
    };
    is_active: boolean;
    is_archive: boolean;
    usage_count: number | null;
    created_at: string;
    updated_at: string;
  }[];
}

export interface ClientInfoResultData {
  data: ClientInfoProps;
}

export interface UpdateClientInfoBody {
  attributes: Partial<ClientInfoAttributes>;
  email: string;
  mobile_phone: string;
  ssn: string;
}
