package com.ycwl.basic.product.dto;

import lombok.Data;

import java.util.Map;

/**
 * 商品类型能力配置请求DTO
 */
@Data
public class ProductTypeCapabilityRequest {

    /**
     * 商品类型代码（唯一）
     * 如：VLOG_VIDEO, PHOTO_PRINT 等
     */
    private String productType;

    /**
     * 显示名称
     */
    private String displayName;

    /**
     * 商品分类
     * VLOG, PHOTO, VIDEO, PRINT, OTHER
     */
    private String category;

    // ========== 定价相关 ==========

    /**
     * 定价模式
     * FIXED: 固定价格
     * QUANTITY_BASED: 基于数量
     * TIERED: 分层定价
     */
    private String pricingMode;

    /**
     * 是否支持阶梯定价
     */
    private Boolean supportsTierPricing;

    // ========== 购买限制 ==========

    /**
     * 是否允许重复购买
     */
    private Boolean allowDuplicatePurchase;

    /**
     * 重复购买检查策略
     * NO_CHECK, CHECK_BY_VIDEO_ID, CHECK_BY_SET_ID, CUSTOM
     */
    private String duplicateCheckStrategy;

    // ========== 优惠能力 ==========

    /**
     * 是否可使用优惠券
     */
    private Boolean canUseCoupon;

    /**
     * 是否可使用券码
     */
    private Boolean canUseVoucher;

    /**
     * 是否可使用一口价优惠
     */
    private Boolean canUseOnePrice;

    /**
     * 是否可参与打包优惠
     */
    private Boolean canUseBundle;

    // ========== 扩展属性 ==========

    /**
     * 扩展属性（JSON 格式）
     */
    private Map<String, Object> metadata;

    /**
     * 是否启用
     */
    private Boolean isActive;
}
