/**
 * Onfleet Node - Version 1
 * Discriminator: resource=task, operation=getAll
 */


interface Credentials {
  onfleetApi: CredentialReference;
}

/** Get many Onfleet admins */
export type OnfleetV1TaskGetAllParams = {
  resource: 'task';
  operation: 'getAll';
/**
 * The ID of the task object for lookup
 */
    id?: string | Expression<string> | PlaceholderValue;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 64
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** The starting time of the range. Tasks created or completed at or after this time will be included.
     */
    from?: string | Expression<string>;
    /** The state of the tasks
     * @default ["all"]
     */
    state?: Array<'all' | 2 | 1 | 3 | 0>;
    /** The ending time of the range. Defaults to current time if not specified.
     */
    to?: string | Expression<string>;
  };
};

export type OnfleetV1TaskGetAllOutput = {
  additionalQuantities?: {
    quantityA?: number;
    quantityB?: number;
    quantityC?: number;
  };
  appearance?: {
    triangleColor?: null;
  };
  completionDetails?: {
    actions?: Array<{
      actionType?: string;
      adminId?: string;
      createdAt?: string;
      prevState?: {
        failureNotes?: string;
        notes?: string;
        success?: boolean;
        successNotes?: string;
      };
    }>;
    events?: Array<{
      location?: Array<number>;
      name?: string;
      time?: number;
    }>;
    failureNotes?: string;
    failureReason?: string;
    firstLocation?: Array<number>;
    lastLocation?: Array<number>;
    notes?: string;
    success?: boolean;
    successNotes?: string;
  };
  creator?: string;
  dependencies?: Array<string>;
  destination?: {
    address?: {
      apartment?: string;
      city?: string;
      country?: string;
      name?: string;
      number?: string;
      postalCode?: string;
      state?: string;
      street?: string;
    };
    id?: string;
    location?: Array<number>;
    notes?: string;
    timeCreated?: number;
    timeLastModified?: number;
    useGPS?: boolean;
    warnings?: Array<string>;
  };
  estimatedArrivalTime?: null;
  estimatedCompletionTime?: null;
  eta?: null;
  executor?: string;
  feedback?: Array<{
    comments?: string;
    rating?: number;
    recipient?: string;
    time?: string;
  }>;
  id?: string;
  identity?: {
    checksum?: null;
    failedScanCount?: number;
  };
  merchant?: string;
  notes?: string;
  orderShortId?: null;
  organization?: string;
  pickupTask?: boolean;
  recipients?: Array<{
    id?: string;
    name?: string;
    notes?: string;
    organization?: string;
    phone?: string;
    skipSMSNotifications?: boolean;
    timeCreated?: number;
    timeLastModified?: number;
  }>;
  scanOnlyRequiredBarcodes?: boolean;
  serviceTime?: number;
  shortId?: string;
  state?: number;
  timeCreated?: number;
  timeLastModified?: number;
  trackingURL?: string;
  trackingViewed?: boolean;
  type?: number;
  worker?: string;
};

export type OnfleetV1TaskGetAllNode = {
  type: 'n8n-nodes-base.onfleet';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<OnfleetV1TaskGetAllParams>;
  output?: Items<OnfleetV1TaskGetAllOutput>;
};