import { Customer } from '../../../models';
import {
  CheckboxField,
  CurrencyField,
  DatetimeField,
  EmailField,
  MultiLineTextField,
  MultipleSelectsField,
  NumberField,
  PhoneField,
  SingleLineTextField,
  SingleSelectField
} from '../AirtableFields';

import {
  ShopifyObjectAirtableFields
} from './ShopifyObjectAirtableFields';

export interface CustomerAirtableFields extends ShopifyObjectAirtableFields<Customer> {
  type: Customer['type'];
  fields: {
    id: SingleLineTextField;
    email: EmailField;
    name: SingleLineTextField;
    first_name: SingleLineTextField;
    last_name: SingleLineTextField;
    orders_count: NumberField;
    total_spent: CurrencyField;
    phone: PhoneField;
    average_order_value: CurrencyField;
    created_at: DatetimeField;
    currency: SingleSelectField;
    note: MultiLineTextField;
    state: SingleSelectField;
    tags: MultipleSelectsField;
    'email_marketing_consent.opt_in_level': SingleSelectField;
    'email_marketing_consent.state': SingleSelectField;
    'email_marketing_consent.updated_at': DatetimeField;
    'sms_marketing_consent.collected_from': SingleSelectField;
    'sms_marketing_consent.opt_in_level': SingleSelectField;
    'sms_marketing_consent.state': SingleSelectField;
    'sms_marketing_consent.updated_at': DatetimeField;
    'default_address.address1': SingleLineTextField;
    'default_address.address2': SingleLineTextField;
    'default_address.city': SingleLineTextField;
    'default_address.company': SingleLineTextField;
    'default_address.country': SingleLineTextField;
    'default_address.country_code': SingleLineTextField;
    'default_address.first_name': SingleLineTextField;
    'default_address.id': SingleLineTextField;
    'default_address.last_name': SingleLineTextField;
    'default_address.phone': PhoneField;
    'default_address.province': SingleLineTextField;
    'default_address.province_code': SingleLineTextField;
    'default_address.zip': SingleLineTextField;
    addresses_json: MultiLineTextField;
    last_order_id: SingleLineTextField;
    last_order_name: SingleLineTextField;
    multipass_identifier: SingleLineTextField;
    tax_exempt: CheckboxField;
    tax_exemptions: MultipleSelectsField;
    updated_at: DatetimeField;
    verified_email: CheckboxField;
  };
};
