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 com.ruoyi.common.core.domain.BaseEntity;

/**
 * 包活工单产品关联业务对象 pay_baohuo_product
 *
 * @author ruoyi
 * @date 2025-05-12
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class PayBaohuoProductBo 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 productId;

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

    /**
     * 产品名称
     */
    @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

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

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

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

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

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

    /**
     * 单位-字典
     */
   // @NotBlank(message = "单位-字典不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unit;

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

    /**
     * 原材料
     */
   // @NotBlank(message = "原材料不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productMaterial;

    /**
     * 产品规格
     */
   // @NotBlank(message = "产品规格不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productSpecification;

}
