import { FleioId } from '@fleio-api/base-model/base-fleio-object.model';
import { IProductModel } from '@fleio-api/billing/model/product.model';

export interface IServiceUpgradeModel {
  setup_fees_summary?: {
    new_setup_fee: number;
    current_setup_fee: number;
  };
  is_downgrade?: boolean;
  credit_on_downgrade?: boolean;
  setup_fees_upgrade?: string;
  confirm?: boolean;
  cycle: FleioId;
  product?: IProductModel | FleioId;
  service_remaining_cost?: number;
  new_product_cycle?: FleioId;
  upgrade_price?: number;
  product_upgrade_price?: number;
  taxes_applied?: { string: number };
  total_due?: number;
  service_id?: FleioId;
  product_id?: FleioId;
  cycle_id?: FleioId;
  display_name?: string;
  currency?: string;
  invoice?: FleioId;
  configurable_options: {
    option: FleioId;
    description: string;
    option_value: string;
    display: string;
    full_display: string;
    price?: number;
    full_price?: number;
    full_price_without_setup_fees?: number;
    upgrade_cost?: number;
    taxable?: boolean;
    unit_price?: number;
    quantity?: number;
    setupfee?: number;
  }[];
  new_product_display?: string;
}
