package forms

import (
	"time"
)

type BillingConfig struct {
	BillingConfigID uint       `json:"billing_config_id"`
	TenantID        uint       `json:"tenant_id,string"`
	StartActiveTime *time.Time `json:"start_active_time"`
	EndActiveTime   *time.Time `json:"end_active_time"`
	Type            string     `json:"type"`
	Status          string     `json:"status"`
	ManagedTenantID uint       `json:"managed_tenant_id,string"`
	CreatedAt       time.Time  `json:"created_at"`
	UpdatedAt       time.Time  `json:"updated_at"`

	BindSupportPlanOnEnabled bool       `json:"-"`
	SupportPlanID            *uint      `json:"-"`
	SupportPlanExpiredDate   *time.Time `json:"-"`
}

type MarketplaceResellerBillingConfig struct {
	TenantID      uint       `json:"tenant_id,string"`
	EffectiveDate *time.Time `json:"effective_date"`
	ResellerId    uint       `json:"reseller_id,string"`

	PaymentCode string `json:"payment_code"`

	Discounts       []Discount        `json:"discounts"`
	SupportPlanInfo *SupportPlanInput `json:"support_plan"`
}

type CPPOBillingConfig struct {
	MarketplaceResellerBillingConfig
	PaymentSubCode string `json:"payment_sub_code"`
}

type MCPOBillingConfig struct {
	MarketplaceResellerBillingConfig
}
