package cn.iocoder.yudao.module.property.service;

import cn.iocoder.yudao.module.company.vo.CompanyRespVO;
import cn.iocoder.yudao.module.property.entity.Property;
import cn.iocoder.yudao.module.property.vo.PropertyReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 企业管理-资产管理 接口
 * @author 小李
 * @date 16:40 2024/8/15
**/
public interface PropertyService extends IService<Property> {

    /**
     * 企业管理-资产分页
     * @author 小李
     * @date 16:15 2024/8/15
     * @param pageReqVO 查询对象
     **/
    IPage<Property> getPropertyPage(PropertyReqVO pageReqVO, Page<Property> page);

    /**
     * 创建资产
     * @author 小李
     * @date 18:26 2024/8/15
     * @param createReqVO
     **/
    void createProperty(PropertyReqVO createReqVO);

    /**
     * 获得资产记录
     * @author 小李
     * @date 18:45 2024/8/15
     * @param id 资产ID
     **/
    Property getProperty(String id);

    /**
     * 更新资产
     * @author 小李
     * @date 18:57 2024/8/15
     * @param updateReqVO 资产对象
     **/
    void updateProperty(PropertyReqVO updateReqVO);

    /**
     * 删除资产
     * @author 小李
     * @date 19:20 2024/8/15
     * @param id 资产ID
     **/
    void deleteProperty(String id);

    /**
     * 检测是否有临期、过期资产，有就通知
     * @author 小李
     * @date 8:47 2024/8/16
     * @param adminUsers
    **/
    void noticePropertyExpired(List<CompanyRespVO> adminUsers);
}