package com.ycwl.basic.pricing.dto.resp;

import com.ycwl.basic.pricing.enums.CouponStatus;
import com.ycwl.basic.pricing.enums.CouponType;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户优惠券响应DTO（包含领取记录+优惠券配置）
 */
@Data
public class UserCouponResp {

    // ==================== 领取记录信息 ====================

    /**
     * 领取记录ID
     */
    private Long claimRecordId;

    /**
     * 领取时间
     */
    private Date claimTime;

    /**
     * 过期时间（根据领取时间+领取后有效期计算）
     */
    private Date expireTime;

    /**
     * 优惠券状态
     */
    private CouponStatus status;

    /**
     * 领取时的景区ID
     */
    private String claimScenicId;

    // ==================== 优惠券配置信息 ====================

    /**
     * 优惠券ID
     */
    private Long couponId;

    /**
     * 优惠券名称
     */
    private String couponName;

    /**
     * 优惠类型
     */
    private CouponType couponType;

    /**
     * 优惠值（百分比时为折扣比例，固定金额时为具体金额）
     */
    private BigDecimal discountValue;

    /**
     * 最小使用金额（门槛）
     */
    private BigDecimal minAmount;

    /**
     * 最大优惠金额
     */
    private BigDecimal maxDiscount;

    /**
     * 适用景区ID（NULL表示不限景区）
     */
    private String scenicId;

    /**
     * 优惠券全局有效期开始时间
     */
    private Date validFrom;

    /**
     * 优惠券全局有效期结束时间
     */
    private Date validUntil;
}
