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_info
 *
 * @author ruoyi
 * @date 2025-05-12
 */

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

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", 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 productId;

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

    /**
     * 件数
     */
    @NotNull(message = "件数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long numbers;

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

    /**
     * 派单人
     */
    @NotBlank(message = "派单人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bookPerson;

    /**
     * 质检人
     */
    @NotBlank(message = "质检人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String qualityPerson;

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

    /**
     * 工单完成日期
     */
    @NotNull(message = "工单完成日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date completeTime;

    /**
     * 工单完成状态（0未完成 1完成）
     */
    @NotBlank(message = "工单完成状态（0未完成 1完成）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String state;

    /**
     * 包活总工时
     */
    @NotNull(message = "包活总工时不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal baohuoHours;

    /**
     * 删除标志（1:删除 0:未删除）
     */
    @NotNull(message = "删除标志（1:删除 0:未删除）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer deleted;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
