/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import {
  array,
  boolean,
  expandoObject,
  lazy,
  number,
  optional,
  Schema,
  string,
} from '../schema.js';
import {
  SaleRepSubscription,
  saleRepSubscriptionSchema,
} from './saleRepSubscription.js';

export interface SaleRep {
  id?: number;
  fullName?: string;
  subscriptionsCount?: number;
  testMode?: boolean;
  subscriptions?: SaleRepSubscription[];
  [key: string]: unknown;
}

export const saleRepSchema: Schema<SaleRep> = lazy(() =>
  expandoObject({
    id: ['id', optional(number())],
    fullName: ['full_name', optional(string())],
    subscriptionsCount: ['subscriptions_count', optional(number())],
    testMode: ['test_mode', optional(boolean())],
    subscriptions: [
      'subscriptions',
      optional(array(saleRepSubscriptionSchema)),
    ],
  })
);
