package com.ruoyi.pay.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工单和员工联系业务对象 pay_work_order_employee
 *
 * @author ruoyi
 * @date 2025-05-12
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PayWorkOrderEmployeeBo extends BaseEntity {

    /**
     * 主键ID
     */
    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 租户id
     */
    @NotNull(message = "租户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long tenantId;

    /**
     * 工单id
     */
    @NotNull(message = "工单id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long workOrderId;

    /**
     * 员工id
     */
    @NotNull(message = "员工id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long employeeId;

    /**
     * 部门ID
     */
    @NotNull(message = "部门ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 类型-用于区别工单
     */
    @NotBlank(message = "类型-用于区别工单不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 员工姓名
     */
    @NotBlank(message = "员工姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String empName;

    /**
     * 开始时间 弃用
     */
    @NotNull(message = "开始时间 弃用不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date startTime;

    /**
     * 结束时间 弃用
     */
    @NotNull(message = "结束时间 弃用不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date endTime;

    /**
     * 有效工作时长 弃用
     */
    @NotNull(message = "有效工作时长 弃用不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal validHours;

    /**
     * 干活日期  弃用
     */
    @NotNull(message = "干活日期  弃用不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date date;

    /**
     * 年月（yyyy-MM）
     */
    @NotBlank(message = "年月（yyyy-MM）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String month;

    /**
     * 工序类型
     */
    @NotBlank(message = "工序类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processingType;

    /**
     * 工序单价
     */
    @NotNull(message = "工序单价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal processingPrice;

    /**
     * 工序加工数量
     */
    @NotNull(message = "工序加工数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long processingNum;

    /**
     * 总金额
     */
    @NotNull(message = "总金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal amount;

    /**
     * 是否帮工（0-否 1-是）
     */
    @NotNull(message = "是否帮工（0-否 1-是）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer helper;

    /**
     * 入库日期
     */
    @NotNull(message = "入库日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date intime;


}
