package com.sqx.modules.material.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.artificer.entity.Agency;
import com.sqx.modules.material.entity.Material;
import com.sqx.modules.material.entity.MaterialArtificer;
import com.sqx.modules.material.entity.MaterialMassage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface MaterialService extends IService<Material> {
    /**
     * 查询所有记录
     *
     * @return 返回集合，没有返回空List
     */
    public List<Material> listAll();


    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    public Material getById(Integer id);

    /**
     * 新增，插入所有字段
     *
     * @param material 新增的记录
     * @return 返回影响行数
     */
    public int insert(Material material);

    /**
     * 新增，忽略null字段
     *
     * @param material 新增的记录
     * @return 返回影响行数
     */
    public Result insertIgnoreNull(Material material);

    /**
     * 修改，修改所有字段
     *
     * @param material 修改的记录
     * @return 返回影响行数
     */
    public int update(Material material);

    /**
     * 修改，忽略null字段
     *
     * @param material 修改的记录
     * @return 返回影响行数
     */
    public Result updateIgnoreNull(Material material);
    /**
     * 删除记录
     *
     * @param material 待删除的记录
     * @return 返回影响行数
     */
    public Result delete(Material material);

    public Result selectPage(Integer page, Integer limit, Material material);

    Result selectMaterialArtificer(Integer page, Integer limit, MaterialArtificer materialArtificer);

    Result selectMaterialMassage(Integer page, Integer limit, MaterialMassage materialMassage);

    Result materialList(Material material);
}