package com.tmerclub.cloud.systemtest.data.marketing;

import cn.hutool.core.date.DateUtil;
import com.tmerclub.cloud.coupon.dto.CouponDTO;
import com.tmerclub.cloud.coupon.vo.CouponVO;
import org.springframework.beans.BeanUtils;

import java.util.List;

/**
 * @author lpj
 */
public class CouponData {
    /**
     * 优惠券数据
     * @param putonStatus 状态
     * @param getWay 领取方式
     * @param couponType 优惠券类型
     * @param cashCondition 使用条件
     * @param reduceAmount 减免金额
     * @param couponDiscount 减免折扣
     * @param validTimeType 生效类型
     * @param limitNum 每人限领
     * @param stocks 库存
     * @param suitableProdType 适用商品
     * @param spuIds 适用商品id
     */
    public static CouponDTO getCouponDTO(Integer putonStatus, Integer getWay, Integer couponType, Long cashCondition, Long reduceAmount, Double couponDiscount,
                                             Integer validTimeType, Integer limitNum, Integer stocks, Integer suitableProdType, List<Long> spuIds) {
        CouponDTO couponDTO = new CouponDTO();
        couponDTO.setCouponId(0L);
        couponDTO.setCouponName("测试自动化优惠券");
        couponDTO.setSubTitle(null);
        couponDTO.setPutonStatus(putonStatus);
        couponDTO.setLaunchTime(null);
        couponDTO.setGetWay(getWay);
        couponDTO.setCouponType(couponType);
        couponDTO.setCashCondition(cashCondition);
        couponDTO.setReduceAmount(reduceAmount);
        couponDTO.setCouponDiscount(couponDiscount);
        couponDTO.setValidTimeType(validTimeType);
        couponDTO.setAfterReceiveDays(0);
        couponDTO.setValidDays(1);
        couponDTO.setStartTime(DateUtil.parse("2023-1-1 00:00:00","yyyy-MM-dd HH:mm:ss"));
        couponDTO.setEndTime(DateUtil.parse("2026-1-1 00:00:00","yyyy-MM-dd HH:mm:ss"));
        couponDTO.setLimitNum(limitNum);
        couponDTO.setStocks(stocks);
        couponDTO.setSuitableProdType(suitableProdType);
        couponDTO.setSpuIds(spuIds);
        couponDTO.setShopId(null);
        couponDTO.setTotalStock(1);
        couponDTO.setVersion(null);
        couponDTO.setStatus(1);

        return couponDTO;
    }

    /**
     * 修改优惠券数据
     */
    public static CouponDTO getUpdateCouponDTO(CouponVO couponVO) {
        CouponDTO couponDTO = new CouponDTO();
        BeanUtils.copyProperties(couponVO, couponDTO);
        //修改为投放状态
        couponDTO.setPutonStatus(4);

        return couponDTO;
    }
}
