package cn.iocoder.yudao.module.trade.controller.app.order.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @Schema(description = "用户 App - 商品结算信息 Response VO") @Data public class AppTradeProductSettlementRespVO { @Schema(description = "SPU 商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long spuId; @Schema(description = "SKU 价格信息数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private List skus; @Schema(description = "满减送活动信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private RewardActivity rewardActivity; @Schema(description = "SKU 价格信息") @Data public static class Sku implements Serializable { @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; @Schema(description = "优惠后价格,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer promotionPrice; @Schema(description = "营销类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "4") private Integer promotionType; // 对应 PromotionTypeEnum 枚举,目前只有 4 和 6 两种 @Schema(description = "营销编号", requiredMode = Schema.RequiredMode.REQUIRED) private Long promotionId; // 目前只有限时折扣活动的编号 @Schema(description = "活动结束时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime promotionEndTime; } @Schema(description = "满减送活动信息") @Data public static class RewardActivity { @Schema(description = "满减活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; @Schema(description = "条件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer conditionType; @Schema(description = "优惠规则的数组", requiredMode = Schema.RequiredMode.REQUIRED) private List rules; } @Schema(description = "优惠规则") @Data public static class RewardActivityRule { @Schema(description = "优惠门槛", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") // 1. 满 N 元,单位:分; 2. 满 N 件 private Integer limit; @Schema(description = "优惠价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer discountPrice; @Schema(description = "是否包邮", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean freeDelivery; @Schema(description = "赠送的积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") private Integer point; @Schema(description = "赠送的优惠劵编号的数组") private Map giveCouponTemplateCounts; } }