package product_getProductUpdateRule_response

import (
	doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core"
)

type ProductGetProductUpdateRuleResponse struct {
	doudian_sdk.BaseDoudianOpApiResponse
	Data *ProductGetProductUpdateRuleData `json:"data"`
}
type SpuControlRule struct {
	// 是否支持spu发品
	SupportSpuProduct bool `json:"support_spu_product"`
	// 0不管控 1弱管控 2强管控
	ControlType int64 `json:"control_type"`
	// 是否支持新建spu
	SupportCreateSpu bool `json:"support_create_spu"`
	// 是否支持spu纠错
	SupportRectifySpu bool `json:"support_rectify_spu"`
	// 是否支持spu举报
	SupportReportSpu bool `json:"support_report_spu"`
	// 是否spu免审
	NoNeedAuditSpu bool `json:"no_need_audit_spu"`
}
type StepRule struct {
	// 是否支持
	Support bool `json:"support"`
	// 阶梯现货部分延迟返货时间范围
	DelayOptions []int64 `json:"delay_options"`
	// 是特殊时间延迟发货，可忽略
	IsSpecialDelayOption bool `json:"is_special_delay_option"`
	// 阶梯发货阶梯部分发货时间最小值
	StepMinDelay int64 `json:"step_min_delay"`
	// 阶梯发货阶梯部分发货时间最大值
	StepMaxDelay int64 `json:"step_max_delay"`
}
type SkuPresellRule struct {
	// 是否支持
	Support bool `json:"support"`
	// 预售门槛价
	MinPresellPrice int64 `json:"min_presell_price"`
	// 是否支持支付结束后发货
	SupportDeliveryAfterPay bool `json:"support_delivery_after_pay"`
	// 是否支持预售结束后发货
	SupportDeliveryAfterPresell bool `json:"support_delivery_after_presell"`
	// 支付结束后规则
	DeliveryAfterPayConfig *DeliveryAfterPayConfig `json:"delivery_after_pay_config"`
	// 预售结束后规则
	DeliveryAfterPresellConfig *DeliveryAfterPresellConfig `json:"delivery_after_presell_config"`
}
type TimeSkuSpecDetialItem struct {
	// 规格值
	SpecValue string `json:"spec_value"`
	// 是否预售时效
	IsPresellSpec bool `json:"is_presell_spec"`
	// product_time_spec_same_day 当日发 product_time_spec_next_day 次日发 product_time_spec_48h  48小时内发货 product_time_spec_5d  5天内发货 product_time_spec_15d  15天内发货 product_time_spec_45d  45天内发货
	SpecCode string `json:"spec_code"`
}
type RecommendNameRule struct {
	// 当前类目id是否命中前缀推荐规则
	SatisfyPrefix bool `json:"satisfy_prefix"`
	// 命中规则的属性id详情
	PropertyIds []int64 `json:"property_ids"`
}
type TimeSkuSpecDetialItem_4_4 struct {
	// 规格值
	SpecValue string `json:"spec_value"`
	// 是否预售时效
	IsPresellSpec bool `json:"is_presell_spec"`
}
type TimeSkuPurePresellRule struct {
	// 是否支持
	Support bool `json:"support"`
	// 发货时效规格名称
	TimeSkuSpecName string `json:"time_sku_spec_name"`
	// 发货时效规格选项
	TimeSkuSpecDetial []TimeSkuSpecDetialItem_4_4 `json:"time_sku_spec_detial"`
	// 预售门槛价，单位分
	MinPresellPrice int64 `json:"min_presell_price"`
}
type AfterSaleRule struct {
	// 无理由退货规则
	SupplyDayReturnRule *SupplyDayReturnRule `json:"supply_day_return_rule"`
}
type ProductSpecRule struct {
	// totally_use_given_spec：完全使用系统下发规格；partly_use_given_spec部分使用系统下发规格；not_use_given_spec：不管控规格
	SpecRuleCode string `json:"spec_rule_code"`
	// 商品规格列表
	RequiredSpecDetails []RequiredSpecDetailsItem `json:"required_spec_details"`
}
type ComponentTemplateRule struct {
	// 是否展示尺码信息
	IsShow bool `json:"is_show"`
	// 尺码信息是否必填
	MustInput bool `json:"must_input"`
}
type ProductGetProductUpdateRuleData struct {
	// 履约规则
	FulfillmentRule *FulfillmentRule `json:"fulfillment_rule"`
	// 商品标题推荐规则
	RecommendNameRule *RecommendNameRule `json:"recommend_name_rule"`
	// 售后服务规则
	AfterSaleRule *AfterSaleRule `json:"after_sale_rule"`
	// 参考价相关规则
	ReferencePriceRule *ReferencePriceRule `json:"reference_price_rule"`
	// spu管控规则
	SpuControlRule *SpuControlRule `json:"spu_control_rule"`
	// 商品规格约束
	ProductSpecRule *ProductSpecRule `json:"product_spec_rule"`
	// 商品尺码模板配置规则
	ComponentTemplateRule *ComponentTemplateRule `json:"component_template_rule"`
}
type DeliveryAfterPayConfig struct {
	// 延迟发货时间最小值
	MinDeliveryDays int64 `json:"min_delivery_days"`
	// 延迟发货时间最大值
	MaxDeliveryDays int64 `json:"max_delivery_days"`
	// 最长预售结束时间
	MaxPresellEndDays int64 `json:"max_presell_end_days"`
	// 是否需要人审，可忽略
	NeedAudit bool `json:"need_audit"`
}
type FulfillmentRule struct {
	// 现货发货模式规则
	NormalRule *NormalRule `json:"normal_rule"`
	// 阶梯发货模式规则
	StepRule *StepRule `json:"step_rule"`
	// 全款预售发货模式规则
	ProductPresellRule *ProductPresellRule `json:"product_presell_rule"`
	// SKU预售发货模式规则
	SkuPresellRule *SkuPresellRule `json:"sku_presell_rule"`
	// 现货+预售发货规则
	TimeSkuPresellWithNormalRule *TimeSkuPresellWithNormalRule `json:"time_sku_presell_with_normal_rule"`
	// 新预售发货模式规则
	TimeSkuPurePresellRule *TimeSkuPurePresellRule `json:"time_sku_pure_presell_rule"`
}
type SupplyDayReturnRule struct {
	// true 支持七天无理由，false 不支持七天无理由
	Enable bool `json:"enable"`
	// 可选的无理由退货选项列表
	Options []OptionsItem `json:"options"`
}
type ReferencePriceRule struct {
	// true表示可填写参考价，false表示不可填写参考价
	IsSupport bool `json:"is_support"`
	// true表示必填参考价，false表示不必填参考价
	IsRequired bool `json:"is_required"`
	// 参考价凭证类型枚举值与对应的显示名称，比如{     "1" : "厂商建议零售价",     "2" : "吊牌价",     "3" : "定价",     "4" : "官网零售价" }
	CertificateTypes map[int64]string `json:"certificate_types"`
	// 参考价最高高于最低SKU价格的倍数，比如最低SKU价格为1，此值为10，则参考价不可高于10
	LowerSkuPriceTimes int64 `json:"lower_sku_price_times"`
}
type OptionsItem struct {
	// 天无理由退货文案描述
	Name string `json:"name"`
	// 无理由退货的类型
	Value string `json:"value"`
}
type PropertyValuesItem struct {
	// 规格值id
	SellPropertyValueId int64 `json:"sell_property_value_id"`
	// 规格值名称
	SellPropertyValueName string `json:"sell_property_value_name"`
}
type RequiredSpecDetailsItem struct {
	// 规格项名称
	SellPropertyName string `json:"sell_property_name"`
	// 规格项id
	SellPropertyId int64 `json:"sell_property_id"`
	// 规格值选项
	PropertyValues []PropertyValuesItem `json:"property_values"`
	// 是否支持备注
	SupportRemark bool `json:"support_remark"`
	// 是否可以自定义规格值
	SupportDiy bool `json:"support_diy"`
}
type NormalRule struct {
	// 是否支持
	Support bool `json:"support"`
	// 发货时效选项，如当日发、次日发、48小时
	DelayOptions []int64 `json:"delay_options"`
	// 是否特殊时间延迟发货，可忽略
	IsSpecialDelayOption bool `json:"is_special_delay_option"`
}
type DeliveryAfterPresellConfig struct {
	// 延迟发货时间最小值
	MinDeliveryDays int64 `json:"min_delivery_days"`
	// 延迟发货时间最大值
	MaxDeliveryDays int64 `json:"max_delivery_days"`
	// 最长预售结束时间
	MaxPresellEndDays int64 `json:"max_presell_end_days"`
	// 是否需要人审，可忽略
	NeedAudit bool `json:"need_audit"`
}
type ProductPresellRule struct {
	// 是否支持全款预售
	Support bool `json:"support"`
	// 预售门槛价
	MinPresellPrice int64 `json:"min_presell_price"`
	// 是否支持支付成功后发货
	SupportDeliveryAfterPay bool `json:"support_delivery_after_pay"`
	// 是否支持预售结束后发货
	SupportDeliveryAfterPresell bool `json:"support_delivery_after_presell"`
	// 支付结束后规则
	DeliveryAfterPayConfig *DeliveryAfterPayConfig `json:"delivery_after_pay_config"`
	// 预售结束后规则
	DeliveryAfterPresellConfig *DeliveryAfterPresellConfig `json:"delivery_after_presell_config"`
}
type TimeSkuPresellWithNormalRule struct {
	// 是否支持
	Support bool `json:"support"`
	// 发货时效规格名称
	TimeSkuSpecName string `json:"time_sku_spec_name"`
	// 发货时效规格选项
	TimeSkuSpecDetial []TimeSkuSpecDetialItem `json:"time_sku_spec_detial"`
	// 预售门槛价，单位分
	MinPresellPrice int64 `json:"min_presell_price"`
}
