package com.leromro.core.domain;

import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.leromro.common.annotation.Excel;
import com.leromro.common.core.domain.BaseEntity;

/**
 * 订单主对象 l_orders
 * 
 * @author ruoyi
 * @date 2025-04-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("l_main_orders")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "MainOrders", description = "主订单")
public class MainOrders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("订单id")
    private String mainOrderId;

    /** 下单用户id */
    @Excel(name = "下单用户id")
    @ApiModelProperty("下单用户id")
    private Long userId;

    /** 服务单价 */
    @Excel(name = "下单单价")
    @ApiModelProperty("单价")
    private BigDecimal serviceOnePrice;

    /** 服务总价 */
    @Excel(name = "下单总价")
    @ApiModelProperty("总价")
    private BigDecimal serviceTotalPrice;


    /**  0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款 8 待确认  */
    @Excel(name = " 0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款 8 待确认 ")
    @ApiModelProperty(" 0待支付 1已支付 2支付超时或取消 3进行中 4已完成 5申请退款中 6已退款 7部分退款 8 待确认 ")
    private Integer orderStatus;

    /** 服务大类别 */
    @Excel(name = "服务大类别")
    @ApiModelProperty("服务大类别")
    private Long serviceCategory;

    /** 服务小类别 */
    @Excel(name = "服务小类别")
    @ApiModelProperty("服务小类别")
    private Long serviceType;

    /** 学科科目 */
    @Excel(name = "学科科目")
    @ApiModelProperty("学科科目")
    private Long serviceSubject;

    /** 总次数 */
    @Excel(name = "总次数")
    @ApiModelProperty("总次数")
    private Long totalTimes;

    /** 已完成次数 */
    @Excel(name = "已完成次数")
    @ApiModelProperty("已完成次数")
    private Long finishTimes;

    /** 预计开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("预计开始日期")
    private Date serviceStartDate;

    /** 预计结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("预计结束日期")
    private Date serviceFinishDate;

    /** 工作开始时间 */
    @JsonFormat(pattern = "H:mm")
    @Excel(name = "工作开始时间", width = 30, dateFormat = "H:mm")
    @ApiModelProperty("工作开始时间")
    private LocalTime startTime;

    @Excel(name = "服务时长")
    @ApiModelProperty("服务时长")
    private Integer serviceDuration;

    /** 支付金额 */
    @Excel(name = "支付金额")
    @ApiModelProperty("支付金额")
    private BigDecimal paymentAmount;

    /** 订单支付方式：0余额 ，1微信，2支付宝 */
    @Excel(name = "订单支付方式：0 未支付，1余额 ，2微信，3支付宝")
    @ApiModelProperty("订单支付方式：0 未支付，1余额 ，2微信，3支付宝")
    private Integer paymentMethod;

    /** 志愿者id */
    @Excel(name = "志愿者id")
    @ApiModelProperty("志愿者id")
    private Long volunteerId;

    /** 受服务地址id */
    @Excel(name = "受服务地址id")
    @ApiModelProperty("受服务地址id")
    private Long addressId;

    /** 是否删除 0未删除，1已删除 */
    @Excel(name = "是否删除 0未删除，1已删除")
    @ApiModelProperty("是否删除 0未删除，1已删除")
    private Integer isDelete;


}
