package cn.iocoder.yudao.module.system.dal.dataobject.assets;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import lombok.*;

/**
 * 部门资产 DO
 *
 * @author 艾楷
 */
@TableName("zc_dept_assets")
@KeySequence("zc_dept_assets_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeptAssetsDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 资产id
     */
    private Long assetsId;
    /**
     * 资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 （资产类型按单件时候有意义）
     */
    private Integer status;
    /**
     * 库存
     */
    private Integer stock;

    /**
     * 初始化
     * @param deptId
     * @param assetsId
     * @return
     */
    public static DeptAssetsDO init(Long deptId, Long assetsId) {
        return new DeptAssetsDO().setId(IdWorker.getId()).setDeptId(deptId).setStock(0).setStatus(0).setAssetsId(assetsId);
    }

    public static DeptAssetsDO init(Long deptId, Long assetsId, Integer stock) {
        return new DeptAssetsDO().setId(IdWorker.getId()).setDeptId(deptId).setStock(stock).setStatus(0).setAssetsId(assetsId);
    }
}