package jnpf.personnels.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import jnpf.model.personnels.dto.staff.field.FtbPersonnelsRegistrationFormFieldDto;
import jnpf.model.personnels.po.FtbPersonnelsRegistrationFormField;
import jnpf.model.personnels.req.field.QueryRegistrationFormFieldListReq;
import jnpf.model.personnels.req.field.SaveRegistrationFormFieldReq;

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

public interface FtbPersonnelsRegistrationFormFieldService extends IService<FtbPersonnelsRegistrationFormField> {

    /**
     * 查询列表
     *
     * @param req
     * @return
     */
    PageInfo<FtbPersonnelsRegistrationFormFieldDto> getPageList(QueryRegistrationFormFieldListReq req);

    /**
     * 获取详情
     *
     * @param id
     * @return
     */
    FtbPersonnelsRegistrationFormFieldDto getInfo(String id);

    /**
     * 新增
     *
     * @param req
     */
    String insertData(SaveRegistrationFormFieldReq req);

    /**
     * 修改
     *
     * @param req
     */
    void updateData(SaveRegistrationFormFieldReq req);

    /**
     * 删除
     *
     * @param id 主键
     */
    void deleteData(String id);

    /**
     * 修改状态
     *
     * @param id     主键
     * @param status 0、启用  1、禁用
     */

    void switchStatus(String id, Integer status);

    /**
     * 修改是否必填
     * @param id 主键
     * @param status 是否必填，0、选填 1、必填
     */
    void switchNeedFill(String id, Integer status);

    /**
     * 查询所有字段数量
     * @param typeId 字段类型
     * @return
     */
    Long queryAllFieldNumForType(String typeId);

    /**
     * 查询已启用字段数量
     * @param typeId 字段类型
     * @return
     */
    Long queryEnableFieldNumForType(String typeId);

    FtbPersonnelsRegistrationFormField queryOneField(String field);

    /**
     * 切换员工是否可见
     */
    void switchVisible(String id, Integer status);

    List<Map<String,String>> queryFieldValue(String field, String workType);

    void toggleWhetherYouCanModifyYourProfile(String id, Integer status);
}
