package com.leromro.core.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
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 io.swagger.annotations.ApiOperation;
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;

import javax.validation.constraints.NotNull;

/**
 * 志愿者的订单对象 l_volunteer_order
 * 
 * @author ruoyi
 * @date 2025-04-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("l_second_order")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "SecondOrder", description = "小的订单")
public class SecondOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 小订单表id */
    @Excel(name = "小订单id")
    @ApiModelProperty("主键 小订单表id")
    private Long secondOrderId;

    /** 订单id */
    @Excel(name = "主订单id")
    @ApiModelProperty("订单id")
    private Long mainOrderId;

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

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

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


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


    /** 服务记录照片拼接 */
    @Excel(name = "志愿者文字评价")
    @ApiModelProperty("志愿者文字评价")
    private String volunteerReview;

    /** 服务记录照片拼接 */
    @Excel(name = "志愿者图片记录")
    @ApiModelProperty("志愿者图片记录")
    private String volunteerPicture;

    /** 服务记录照片拼接 */
    @Excel(name = "用户文字评价")
    @ApiModelProperty("用户文字评价")
    private String userReview;

    /** 服务记录照片拼接 */
    @Excel(name = "用户图片记录")
    @ApiModelProperty("用户图片记录")
    private String userPicture;

    /** 服务开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "服务开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("服务开始日期")
    private LocalDate workDate;

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

    /** 结束时间 */
    @JsonFormat(pattern = "HH:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "HH:ss")
    @ApiModelProperty("结束时间")
    private LocalTime workEndTime;

    /** 服务第几次 */
    @Excel(name = "服务第几次")
    @ApiModelProperty("服务第几次")
    private Long workNumber;

    /** 服务时长（小时） */
    @Excel(name = "服务时长", readConverterExp = "小=时")
    @ApiModelProperty("服务时长（小时）")
    private Integer serviceDuration;

    /** 服务地址表外键 */
    @Excel(name = "服务地址表外键")
    @ApiModelProperty("服务地址表外键")
    private Long addressId;

    /** 评分 */
    @Excel(name = "评分")
    @ApiModelProperty("评分")
    private Integer score;

    /** 评分 */
    @Excel(name = "服务礼仪")
    @ApiModelProperty("服务礼仪")
    private Integer protocolScore;

    /** 评分 */
    @Excel(name = "服装整洁")
    @ApiModelProperty("服装整洁")
    private Integer clothingScore;

    /** 评分 */
    @Excel(name = "专业能力")
    @ApiModelProperty("专业能力")
    private Integer abilityScore;

    /** 评分 */
    @Excel(name = "服务质量")
    @ApiModelProperty("服务质量")
    private Integer qualityScore;

    /** 评分 */
    @Excel(name = "服务质量")
    @ApiModelProperty("服务质量")
    private Long volunteerInfoId;

    @TableField("province_code")
    @ApiModelProperty("省级区划编号")
    private String provinceCode;

    @TableField("province_name")
    @ApiModelProperty("省级名称")
    private String provinceName;

    @TableField("city_code")
    @ApiModelProperty("市级编号")
    private String cityCode;

    @TableField("city_name")
    @ApiModelProperty("市级名称")
    private String cityName;

    @TableField("district_code")
    @ApiModelProperty("区级区划编号")
    private String districtCode;

    @TableField("district_name")
    @ApiModelProperty("区级名称")
    private String districtName;


}
