package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.TServiceManage;
import com.ruoyi.system.domain.TUserProfile;
import com.ruoyi.system.domain.TEmergentPeople;
import com.ruoyi.system.domain.dto.TUserProfileDto;
import com.ruoyi.system.domain.dto.UserAgeDto;

/**
 * 用户档案Mapper接口
 * 
 * @author zhengjie
 * @date 2023-08-25
 */
public interface TUserProfileMapper 
{
    /**
     * 查询用户档案
     * 
     * @param id 用户档案主键
     * @return 用户档案
     */
    public TUserProfile selectTUserProfileById(Integer id);

    /**
     * 查询用户档案
     *
     * @param sfzid 身份证
     * @return 用户档案
     */
    public TUserProfile selectTUserProfileBySfzId(String sfzid);

    /**
     * 查询用户档案列表
     * 
     * @param tUserProfile 用户档案
     * @return 用户档案集合
     */
    public List<TUserProfile> selectTUserProfileList(TUserProfile tUserProfile);

    /**
     * 查询用户档案列表
     *
     * @param tUserProfileDto 用户档案
     * @return 用户档案集合
     */
    public List<TUserProfileDto> selectTUserProfileListByDevice(TUserProfileDto tUserProfileDto);

    /**
     * 新增用户档案
     * 
     * @param tUserProfile 用户档案
     * @return 结果
     */
    public int insertTUserProfile(TUserProfile tUserProfile);

    /**
     * 修改用户档案
     * 
     * @param tUserProfile 用户档案
     * @return 结果
     */
    public int updateTUserProfile(TUserProfile tUserProfile);

    /**
     * 删除用户档案
     * 
     * @param id 用户档案主键
     * @return 结果
     */
    public int deleteTUserProfileById(Integer id);

    /**
     * 批量删除用户档案
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTUserProfileByIds(Integer[] ids);

    /**
     * 批量删除紧急联系人
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTEmergentPeopleByProfileIds(Integer[] ids);
    
    /**
     * 批量新增紧急联系人
     * 
     * @param tEmergentPeopleList 紧急联系人列表
     * @return 结果
     */
    public int batchTEmergentPeople(List<TEmergentPeople> tEmergentPeopleList);
    

    /**
     * 通过用户档案主键删除紧急联系人信息
     * 
     * @param id 用户档案ID
     * @return 结果
     */
    public int deleteTEmergentPeopleByProfileId(Integer id);

    /**
     * 用户年龄
     *
     * @return 结果
     */
    public List<UserAgeDto> selectuserAgeDto();

    /**
     * 用户总数
     *
     * @return 结果
     */
    public Integer selectuserAgeCount();
}
