import { AppliedLabels } from './AppliedLabels'
import { LastModifiedDateTime } from './LastModifiedDateTime'
import { ChildPublisher } from './ChildPublisher'
import { ViewabilityProvider } from './ViewabilityProvider'

export enum Type {
  HOUSE_ADVERTISER = 'HOUSE_ADVERTISER',
  HOUSE_AGENCY = 'HOUSE_AGENCY',
  ADVERTISER = 'ADVERTISER',
  AGENCY = 'AGENCY',
  AD_NETWORK = 'AD_NETWORK',
  PARTNER = 'PARTNER',
  CHILD_PUBLISHER = 'CHILD_PUBLISHER',
  VIEWABILITY_PROVIDER = 'VIEWABILITY_PROVIDER',
  UNKNOWN = 'UNKNOWN',
}

export enum CreditStatus {
  ACTIVE = 'ACTIVE',
  ON_HOLD = 'ON_HOLD',
  CREDIT_STOP = 'CREDIT_STOP',
  INACTIVE = 'INACTIVE',
  BLOCKED = 'BLOCKED',
}

/**
 * companies
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202411`
 */
export interface Companies {
  /** xsd:long */
  id?: number
  /** xsd:string */
  name?: string
  /** Company.Type|xsd:string|HOUSE_ADVERTISER,HOUSE_AGENCY,ADVERTISER,AGENCY,AD_NETWORK,PARTNER,CHILD_PUBLISHER,VIEWABILITY_PROVIDER,UNKNOWN */
  type?: Type | keyof typeof Type
  /** xsd:string */
  address?: string
  /** xsd:string */
  email?: string
  /** xsd:string */
  faxPhone?: string
  /** xsd:string */
  primaryPhone?: string
  /** xsd:string */
  externalId?: string
  /** xsd:string */
  comment?: string
  /** Company.CreditStatus|xsd:string|ACTIVE,ON_HOLD,CREDIT_STOP,INACTIVE,BLOCKED */
  creditStatus?: CreditStatus | keyof typeof CreditStatus
  /** appliedLabels[] */
  appliedLabels?: Array<AppliedLabels>
  /** xsd:long */
  primaryContactId?: number
  /** xsd:long */
  appliedTeamIds?: Array<number>
  /** xsd:int */
  thirdPartyCompanyId?: number
  /** lastModifiedDateTime */
  lastModifiedDateTime?: LastModifiedDateTime
  /** childPublisher */
  childPublisher?: ChildPublisher
  /** viewabilityProvider */
  viewabilityProvider?: ViewabilityProvider
}
