import { IBaseFleioObjectModel } from '../../base-model/base-fleio-object.model';
import { ITieredPrice } from './tiered-price';
import { IPricingRuleConditionModel } from '@fleio-api/openstack/model/pricing-rule-condition.model';
import { IPricingRuleModifierModel } from '@fleio-api/openstack/model/pricing-rule-modifier.model';
import { IAction } from '@objects-view/interfaces/actions/action';

export interface IPricingRuleModel extends IBaseFleioObjectModel {
  display_name: string;
  resource_type: string;
  priority: number;
  resource_name: string;
  price: number;
  pricing_attribute: string | null;
  display_unit: string;
  modifiers_count: number;
  tiered_price: ITieredPrice[];
  pricing?: {
    prices: Array<Record<any, any>>;
    attribute?: string;
    attribute_unit?: string;
    time_unit?: string;
  };
  attribute?: string;
  attribute_unit?: string;
  time_unit?: string;
  modifiers?: Array<IPricingRuleModifierModel>;
  conditions?: Array<IPricingRuleConditionModel>;
  resource?: number;
  plan?: number;
  start_dt: Date;
  end_dt: Date;
  free_resources_for_related_resource: number;
  billed_value_increment: number;
}
