package com.energy.manage.service.service.units;


import com.energy.manage.common.base.Page;
import com.energy.manage.service.domain.dto.units.*;
import com.energy.manage.service.domain.vo.units.UnitDictBrandModelVo;
import com.energy.manage.service.domain.vo.units.UnitDictConstantsVo;

import java.util.List;

/**
 * 部件字典表接口
 */
public interface UnitDictConstantsService  {


    /**
     * 创建数据字典
     * @param unitDictConstantsDto
     * @return
     */
    boolean saveUnitDict(UnitDictConstantsDto unitDictConstantsDto);

    /**
     * 更新数据字典
     * @param unitDictConstantsUpdateDto
     * @return
     */
    boolean updateUnitDict(UnitDictConstantsUpdateDto unitDictConstantsUpdateDto);


    /**
     * 删除数据字典
     * @param unitDictConstantsDelDto
     * @return
     */
    boolean delUnitDict(UnitDictConstantsDelDto unitDictConstantsDelDto);




    /**
     * 部件字典分页列表，通过名字查询
     * @return
     */
    Page<UnitDictConstantsVo> getUnitDictConstantsPage(UnitDictConstantsPageDto unitDictConstantsPageDto);


    /**
     * 创建部件属性数据
     * @return
     */
    boolean saveUnitDictProperty(UnitDictConstantsDto unitDictConstantsDto);


    /**
     * 删除字典属性
     * @param unitDictConstantsPDelDto
     * @return
     */
    boolean delUnitDictProperty(UnitDictConstantsPDelDto unitDictConstantsPDelDto);


    /**
     * 更新字典属性名字
     * @param unitDictConstantsUpdateDto
     * @return
     */
    boolean updateUnitDictProperty(UnitDictConstantsUpdateDto unitDictConstantsUpdateDto);


    /**
     * 字典属性集合
     * @param contentsType
     * @return
     */
    List<UnitDictConstantsVo> getUnitDictConstantsList(String contentsType);


    /**
     * 通过主键id查询字典对象
     * @param id
     * @return
     */
    UnitDictConstantsVo getUnitDictConstants(Integer id);


    /**
     * 查询品牌型号分页查询
     * @param unitDictBrandModelPageDto
     * @return
     */
    Page<UnitDictBrandModelVo>  getUnitDictBrandModelPage(UnitDictBrandModelPageDto unitDictBrandModelPageDto);

    /**
     * 创建部件品牌型号
     * @param unitDictBrandModelDto
     * @return
     */
    boolean saveUnitDictBrandModel(UnitDictBrandModelDto unitDictBrandModelDto);

    /**
     * 更新部件品牌型号
     * @param unitDictBrandModelUpdateDto
     * @return
     */
    boolean updateUnitDictBrandModel(UnitDictBrandModelUpdateDto unitDictBrandModelUpdateDto);

    /**
     * 更新部件品牌型号参数
     * @param unitDictBrandModelParameterUpdateDto
     * @return
     */
    boolean updateUnitDictBrandParameterModel(UnitDictBrandModelParameterUpdateDto unitDictBrandModelParameterUpdateDto);


    /**
     * 删除部件品牌型号
     * @param unitDictBrandModelIdDto
     * @return
     */
    boolean delUnitDictBrandModel(UnitDictBrandModelIdDto unitDictBrandModelIdDto);


    /**
     * 通过部件类型/品牌名称查询集合
     * @param unitDictBrandModelDto
     * @return
     */
    List<String> getUnitDictBrandModelList(UnitDictBrandModelDto unitDictBrandModelDto);

    /**
     * 验证品牌型号在数据库中是否存在
     * @param dto
     * @return
     */
    boolean verifyUnitDictBrandModel(UnitDictBrandModelDto dto);

    /**
     * 验证部件是否已存在
     * @param unitDictConstantsDto
     * @return
     */
    boolean verifyUnitDictModel(UnitDictConstantsDto unitDictConstantsDto);


}
