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

/**
 * 项目成本分析业务对象 sys_oa_cost
 *
 * @author ruoyi
 * @date 2025-03-04
 */

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

    /**
     * 主键id
     */
    private Long costId;

    /**
     * 绑定项目id
     */
    @NotNull(message = "绑定项目id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long projectId;

    /**
     * 花费
     */
    @NotNull(message = "花费不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double cost;

    /**
     * 花费类型，字典查询
     */
    @NotNull(message = "花费类型，字典查询不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer costType;

    /**
     * 花费备注
     */
    private String remark;

    /**
     * 若为物料花费需要绑定物料id
     */
    private Long materialId;

    /**
     * 若为人工花费则绑定用户id
     */
    private Long userId;

    /**
     * 绑定财政收支id
     */
    private Long financeId;

    /**
     * 若为差旅报销绑定差旅id
     */
    private Long claimId;

    /**
     * 项目名称
     */
    private String projectName;


}
