package com.engine.salary.service;

import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
import com.engine.salary.entity.datacollection.param.AttendQuoteFieldQueryParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteFieldSaveParam;
import com.engine.salary.entity.datacollection.po.AttendQuoteFieldPO;
import com.engine.salary.util.page.PageInfo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 数据采集-考勤引用字段
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
public interface AttendQuoteFieldService {


    /**
     * 获取所有考勤字段
     *
     * @return
     */
    List<AttendQuoteFieldPO> getAllAttendQuoteFields();

    /**
     * 数据采集-考勤引用字段列表（分页）
     *
     * @param queryParam
     * @return
     */
    PageInfo<AttendQuoteFieldListDTO> listPage(AttendQuoteFieldQueryParam queryParam);

    /**
     * 获取单个考勤字段
     *
     * @param id
     * @return
     */
    AttendQuoteFieldPO getById(Long id);



    /**
     * 数据采集-考勤引用字段列表
     *
     * @param queryParam
     * @return
     */
    Map<String, Object> list(AttendQuoteFieldQueryParam queryParam);

    /**
     * 获取数据采集-考勤引用字段表单
     *
     * @param id
     * @return
     */
    AttendQuoteFieldPO getFrom(Long id);

    /**
     * 新建数据采集-考勤引用字段
     *
     * @param saveParam
     * @return
     */
    String save(AttendQuoteFieldSaveParam saveParam);

    /**
     * 编辑数据采集-考勤引用字段
     *
     * @param param
     * @return
     */
    String update(AttendQuoteFieldSaveParam param);

    /**
     * 删除数据采集-考勤引用字段
     *
     * @param ids
     * @return
     */
    String delete(Collection<Long> ids);

    /**
     * 启用/停用自定义字段
     *
     * @param param
     * @return
     */
    String updateEnableStatus(AttendQuoteFieldSaveParam param);


    /**
     * 同步考勤模块字段
     *
     * @return
     */
    String syncAttendFields();

    /**
     * 获取当前租户下所有的考勤引用字段
     *
     * @return
     */
    List<AttendQuoteFieldListDTO> listAll();
}
