package com.tao.service;

import com.tao.pojo.AjaxResult;
import com.tao.pojo.AppElement;

import java.util.List;

public interface AppElementService {

    /**
     * @param dirPath
     * @return AjaxResult
     * @Description 在dirPath目录里面查找page.py文件，将py文件中的元素同步到数据库中
     */
    public AjaxResult syncElements(String dirPath);

    /**
     * @param id ID
     * @return com.tao.pojo.AppElement
     * @Description 根据ID查找元素
     */
    public AppElement selectAppElementById(Long id);

    /**
     * @param elementName
     * @return com.tao.pojo.AppElement
     * @Description 根据类型来查找元素集合
     */
    public AppElement selectAppElementByName(String elementName);

    /**
     * @param pageID
     * @return java.util.List<com.tao.pojo.AppElement>
     * @Description 根据pageID来查找元素集合
     */
    public List<AppElement> selectAppElementListByPageID(Long pageID);

    /**
     * @param elementType
     * @return java.util.List<com.tao.pojo.AppElement>
     * @Description 根据类型来查找元素集合
     */
    public List<AppElement> selectAppElementListByType(Long elementType);

    /**
     * @param appElement 当appElement属性为空时，则返回所有元素
     * @return java.util.List<com.tao.pojo.AppElement>
     * @Description 根据appElement查找元素列表
     */
    public List<AppElement> selectAppElementList(AppElement appElement);

    /**
     * @param appElement
     * @return java.util.List<com.tao.pojo.AppElement>
     * @Description 根据字符属性字段模糊查找元素集合
     */
    public List<AppElement> selectAppElementListFuzzy(AppElement appElement);

    /**
     * @param appElement
     * @return int
     * @Description 插入元素
     */
    public int insertAppElement(AppElement appElement);

    /**
     * @param appElement
     * @return int
     * @Description 更新元素
     */
    public int updateAppElement(AppElement appElement);

    /**
     * @param id
     * @return int
     * @Description 根据ID删除元素
     */
    public int deleteAppElementById(Long id);

    /**
     * @param elementType
     * @return int
     * @Description 根据元素类型删除元素
     */
    public int deleteAppElementByType(Long elementType);

}
