package shop.alien.entity.storePlatform.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import shop.alien.entity.store.StoreImg;
import shop.alien.entity.storePlatform.StoreOperationalActivity;

/**
 * 运营活动 VO
 * 用于返回给前端的数据对象
 *
 * @author system
 * @since 2025-11-26
 */
@Data
@JsonInclude
@ApiModel(value = "StoreOperationalActivityVO", description = "运营活动返回对象，包含活动基本信息、优惠券信息、代金券信息、活动图片等")
public class StoreOperationalActivityVO extends StoreOperationalActivity {

    @ApiModelProperty(value = "活动状态名称")
    private String statusName;

    @ApiModelProperty(value = "活动规则名称")
    private String activityRuleName;

    @ApiModelProperty(value = "奖励类型名称")
    private String rewardTypeName;

    @ApiModelProperty(value = "优惠券名称")
    private String couponName;

    @ApiModelProperty(value = "代金券名称")
    private String voucherName;

    @ApiModelProperty(value = "商户名称")
    private String storeName;

    @ApiModelProperty(value = "活动状态：0-未开始, 1-进行中, 2-已结束")
    private Integer activityStatus;

    @ApiModelProperty(value = "已参与人数")
    private Integer participationCount;

    @ApiModelProperty(value = "剩余优惠券数量")
    private Integer remainingCouponQuantity;

    @ApiModelProperty(value = "剩余代金券数量")
    private Integer remainingVoucherQuantity;

    @ApiModelProperty(value = "活动标题图片")
    private StoreImg activityTitleImg;

    @ApiModelProperty(value = "活动详情图片")
    private StoreImg activityDetailImg;

    @ApiModelProperty(value = "活动标题图片")
    private String activityTitleImgUrl;

    @ApiModelProperty(value = "活动详情图片")
    private String activityDetailImgUrl;

    @ApiModelProperty(value = "活动详情图片URL列表")
    private java.util.List<String> activityDetailImgUrlList;

    @ApiModelProperty(value = "活动类型名称")
    private String activityTypeName;

    @ApiModelProperty(value = "上传图片类型：0-本地上传, 1-AI生成")
    private Integer uploadImgType;

    @ApiModelProperty(value = "优惠券类型：1-优惠券, 2-红包, 3-平台优惠券, 4-代金券")
    private Integer couponType;

    @ApiModelProperty(value = "优惠券类型（满减券/折扣券）：1=满减券，2=折扣券（仅当优惠券存在时有值）")
    private Integer discountCouponType;

    @ApiModelProperty(value = "折扣率（0-100，用于折扣券，例如80表示8折，仅折扣券有值）")
    private java.math.BigDecimal discountRate;
}

