package com.ssm.manage.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ssm.manage.entity.CourseAccount;
import com.ssm.manage.entity.PayList;
import com.ssm.manage.entity.Salesman;
import com.ssm.manage.entity.UploadFiles;
import com.ssm.manage.extendEntity.AchiCommEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Setter
@Getter
@ToString
public class RefundCourseResponse {

    private List<Salesman> salesmans;

    private CourseAccount courseAccount;

    /**
     * 主键ID
     */
    @Id
    private Long id;

    /**
     * 退款单据号
     */
    @Column(name = "refund_num")
    private String refundNum;

    /**
     * 退款单据时间
     */
    @Column(name = "refund_date")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refundDate;

    /**
     * 门店编码
     */
    @Column(name = "store_id")
    private Long storeId;

    /**
     * 门店名称
     */
    @Column(name = "store_name")
    private String storeName;

    /**
     * 会员编码
     */
    @Column(name = "member_id")
    private Long memberId;

    /**
     * 会员名称
     */
    @Column(name = "member_name")
    private String memberName;

    /**
     * 会员身份证号
     */
    @Column(name = "member_identity_card")
    private String memberIdentityCard;

    /**
     * 手机
     */
    @Column(name = "mobile_phone")
    private String mobilePhone;

    /**
     * 会员卡
     */
    private String card;

    /**
     * 开卡疗程ID
     */
    @Column(name = "course_project_id")
    private Long courseProjectId;


    /**
     * 开卡疗程名称
     */
    @Column(name = "course_project_num")
    private String courseProjectNum;

    /**
     * 开卡疗程名称
     */
    @Column(name = "course_project_name")
    private String courseProjectName;

    /**
     * 开卡疗程金额
     */
    @Column(name = "course_project_money")
    private BigDecimal courseProjectMoney;

    /**
     * 开卡疗程次数
     */
    @Column(name = "course_count")
    private Integer courseCount;

    /**
     * 最近消费时间
     */
    @Column(name = "last_consume_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastConsumeTime;

    /**
     * 开卡剩余次数
     */
    @Column(name = "course_rest_count")
    private Integer courseRestCount;

    /**
     * 开卡可用次数
     */
    @Column(name = "course_consume_count")
    private Integer courseConsumeCount;

    /**
     * 账户类型0:疗程/1:促销/2:促销赠品
     */
    @Column(name = "course_type")
    private String courseType;

    /**
     * 疗程退款金额
     */
    @Column(name = "course_refund_money")
    private BigDecimal courseRefundMoney;

    /**
     * 疗程赔偿金额
     */
    @Column(name = "course_compensation")
    private BigDecimal courseCompensation;

    /**
     * 疗程账户ID
     */
    @Column(name = "course_account_id")
    private Long courseAccountId;

    /**
     * 门店高管编码
     */
    @Column(name = "manage_staff_id")
    private Long manageStaffId;

    /**
     * 门店高管名称
     */
    @Column(name = "manage_staff_name")
    private String manageStaffName;

    /**
     * 门店高管身份证号
     */
    @Column(name = "manage_identity")
    private String manageIdentity;

    /**
     * 门店高管水牌号
     */
    @Column(name = "manage_number")
    private String manageNumber;


    /**
     * 本次退疗程次数
     */
    @Column(name = "refund_number")
    private Integer refundNumber;


    /**
     * 取消前单价
     */
    @Column(name = "before_price")
    private BigDecimal beforePrice;
    /**
     * 取消前剩余金额
     */
    @Column(name = "before_rest_money")
    private BigDecimal beforeRestMoney;
    /**
     * 取消前可用金额
     */
    @Column(name = "before_consume_money")
    private BigDecimal beforeConsumeMoney;

    /**
     * 取消前剩余赠送金额
     */
    @Column(name = "before_gift_consume_money")
    private BigDecimal beforeGiftConsumeMoney;

    /**
     * 取消前可用赠送金额
     */
    @Column(name = "before_gift_rest_money")
    private BigDecimal beforeGiftRestMoney;

    /**
     * 取消前剩余次数
     */
    @Column(name = "before_rest_count")
    private Integer  beforeRestCount;
    /**
     * 取消前可用次数
     */
    @Column(name = "before_consume_count")
    private Integer beforeConsumeCount;


    /**
     * 取消后单价
     */
    @Column(name = "back_price")
    private BigDecimal backPrice;
    /**
     * 取消后剩余金额
     */
    @Column(name = "back_rest_money")
    private BigDecimal backRestMoney;
    /**
     * 取消后可用金额
     */
    @Column(name = "back_consume_money")
    private BigDecimal backConsumeMoney;


    /**
     * 取消前剩余赠送金额
     */
    @Column(name = "back_gift_consume_money")
    private BigDecimal backGiftConsumeMoney;

    /**
     * 取消前可用赠送金额
     */
    @Column(name = "back_gift_rest_money")
    private BigDecimal backGiftRestMoney;

    /**
     * 取消后剩余次数
     */
    @Column(name = "back_rest_count")
    private Integer  backRestCount;
    /**
     * 取消后可用次数
     */
    @Column(name = "back_consume_count")
    private Integer backConsumeCount;



    /**
     * 取消前可用赠送金额
     */
    @Column(name = "course_refund_amount")
    private BigDecimal courseRefundAmount;

    /**
     * 取消后剩余次数
     */
    @Column(name = "course_refund_number")
    private Integer  courseRefundNumber;

    private List<UploadFiles> fileLists;
    private List<AchiCommEntity> entities;
}
