package com.ycwl.basic.pricing.dto;

import com.ycwl.basic.pricing.enums.ProductType;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品项DTO
 */
@Data
public class ProductItem {
    
    /**
     * 商品类型
     */
    private ProductType productType;
    
    /**
     * 具体商品ID：vlog视频为具体视频ID，录像集/照相集为景区ID，打印为景区ID
     */
    private String productId;

    /**
     * 数量（如原片数量、照片数量等）
     */
    private Integer quantity;
    
    /**
     * 购买数量（购买几个该商品）
     */
    private Integer purchaseCount;
    
    /**
     * 原价（用于前端展示）
     */
    private BigDecimal originalPrice;
    
    /**
     * 单价（实际计算用的价格）
     */
    private BigDecimal unitPrice;
    
    /**
     * 小计（计算后填入）
     */
    private BigDecimal subtotal;
    
    /**
     * 景区ID
     */
    private String scenicId;

    /**
     * 商品属性Key列表（服务端计算填充，客户端传入会被忽略）
     */
    private List<String> attributeKeys;

    /**
     * 是否已购买（服务端填充）
     * 结合 DuplicateCheckStrategy 判断：
     * - NO_CHECK: 始终为 false（允许重复购买）
     * - 其他策略: 基于用户已有资源判断
     */
    private Boolean hasPurchased;
}
