package com.ruoyi.database.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @Description ApprovalProcess
 * @Author lijingtong
 * @Date 2025-06-07
 */
@Data
@TableName("approval_process")
@ApiModel("审批单")
public class ApprovalProcess {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("审批编号")
    private String approvalNo;

    @ApiModelProperty("流程标题")
    private String processTitle;

    @ApiModelProperty("提交人姓名")
    private String submitterName;

    @ApiModelProperty("提交人ID")
    private Long submitterId;

    @ApiModelProperty("提交时间")
    private Long submitTime;

    @ApiModelProperty("事项类型 0-喝酒 1-请假 2-出差")
    private Integer matterType;

    @ApiModelProperty("审批状态:0-待提交 1-部门审批中 2-政治处审批中 3-局领导审批中 4-已通过 5-已拒绝")
    private Integer approvalStatus;

    @ApiModelProperty("到达日期")
    private Long arrivalDate;

    @ApiModelProperty("处理日期")
    private Long handleDate;

    @ApiModelProperty("阅读状态:0-未读 1-已读")
    private Integer readStatus;

    @ApiModelProperty("开始时间")
    private Long startTime;

    @ApiModelProperty("结束时间")
    private Long endTime;

    @ApiModelProperty("出差目的地")
    private String businessTripDestination;

    @ApiModelProperty("起止日期")
    private String startEndDate;

    @ApiModelProperty("饮酒时间")
    private Long drinkingTime;

    @ApiModelProperty("饮酒地点")
    private String drinkingPlace;

    @ApiModelProperty("创建时间")
    private Long createTime;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("修改时间")
    private Long updateTime;

    @ApiModelProperty("修改人")
    private String updateBy;

    // 非数据库字段 - 用于前端展示的日期格式化字符串
    @TableField(exist = false)
    @ApiModelProperty("提交时间(格式化字符串)")
    private String submitTimeStr;

    @TableField(exist = false)
    @ApiModelProperty("开始时间(格式化字符串)")
    private String startTimeStr;

    @TableField(exist = false)
    @ApiModelProperty("结束时间(格式化字符串)")
    private String endTimeStr;

    @TableField(exist = false)
    @ApiModelProperty("饮酒时间(格式化字符串)")
    private String drinkingTimeStr;
}