package com.ylx.order.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.ylx.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

@Data
@Accessors(chain = true)
@ApiModel(value = "RefundRuleDetail", description = "退款规则明细表")
public class RefundRuleDetail extends BaseEntity {
    private static final long serialVersionUID = 4666309182130163491L;

    /**
     * 主键ID。
     */
    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 退款规则主表ID。
     */
    @ApiModelProperty("退款规则主表ID")
    private Long masterId;

    /**
     * 阶段类型：0-技师未出发前，1-商户已出发途中，2-服务进行中。
     */
    @ApiModelProperty("阶段类型: 0=技师未出发前, 1=商户已出发(途中), 2=服务进行中")
    private Integer stageType;

    /**
     * 距离服务开始时间的起始小时数。
     */
    @ApiModelProperty("距离服务开始时间的起始小时数")
    private BigDecimal timeStartHours;

    /**
     * 距离服务开始时间的结束小时数。
     */
    @ApiModelProperty("距离服务开始时间的结束小时数")
    private BigDecimal timeEndHours;

    /**
     * 退款类型：0-全额退款，1-部分退款。
     */
    @ApiModelProperty("退款类型: 0=全额退款, 1=部分退款")
    private Integer refundType;

    /**
     * 退款百分比。
     */
    @ApiModelProperty("退款百分比")
    private BigDecimal refundPercent;

    /**
     * 退款规则描述。
     */
    @ApiModelProperty("商户未出发前退款规则描述，计划后端根据出发时间、结束时间和退款比例生成描述")
    private String refundDesc;

    /**
     * 前端展示排序。
     */
    @ApiModelProperty("前端展示排序")
    private Integer sortOrder;

    /**
     * 是否删除：0-否，1-是。
     */
    @TableLogic
    @ApiModelProperty("是否删除 0=否，1=是")
    private Integer isDelete;

}
