package com.qmth.themis.business.service;

import com.qmth.themis.business.dto.AuthDto;
import com.qmth.themis.business.dto.AuthOrgInfoDto;
import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
import com.qmth.themis.business.entity.*;

/**
 * @Description: 缓存 服务类
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2020/6/27
 */
public interface CacheService {

    /**
     * 添加机构缓存
     *
     * @param orgId
     * @return
     */
    public TBOrg addOrgCache(Long orgId);

    /**
     * 更新机构缓存
     *
     * @param orgId
     * @return
     */
    public TBOrg updateOrgCache(Long orgId);

    /**
     * 添加机构编码缓存
     *
     * @param code
     * @return
     */
    public TBOrg addOrgCodeCache(String code);

    /**
     * 更新机构编码缓存
     *
     * @param code
     * @return
     */
    public TBOrg updateOrgCodeCache(String code);

    /**
     * 删除机构缓存
     *
     * @param orgId
     */
    public void removeOrgCache(Long orgId);

    /**
     * 删除机构编码缓存
     *
     * @param code
     */
    public void removeOrgCodeCache(String code);

    /**
     * 删除机构缓存
     */
    public void removeOrgIdCache();

    /**
     * 删除机构缓存
     */
    public void removeOrgCodeCache();

    /**
     * 添加用户鉴权缓存
     *
     * @param userId
     * @return
     */
    public AuthDto addAccountAuthCache(Long userId);

    /**
     * 删除用户鉴权缓存
     *
     * @param userId
     */
    public void removeAccountAuthCache(Long userId);

    /**
     * 添加用户缓存
     *
     * @param userId
     * @return
     */
    public TBUser addAccountCache(Long userId);

    /**
     * 更新用户缓存
     *
     * @param userId
     * @return
     */
    public TBUser updateAccountCache(Long userId);

    /**
     * 删除用户缓存
     *
     * @param userId
     */
    public void removeAccountCache(Long userId);

    /**
     * 添加学生鉴权缓存
     *
     * @param studentId
     * @return
     */
    public AuthDto addStudentAuthCache(Long studentId);

    /**
     * 删除学生鉴权缓存
     *
     * @param studentId
     */
    public void removeStudentAuthCache(Long studentId);

    /**
     * 添加学生缓存
     *
     * @param studentId
     * @return
     */
    public TEStudentCacheDto addStudentAccountCache(Long studentId);

    /**
     * 更新学生缓存
     *
     * @param studentId
     * @return
     */
    public TEStudentCacheDto updateStudentAccountCache(Long studentId);

    /**
     * 删除学生缓存
     *
     * @param studentId
     */
    public void removeStudentAccountCache(Long studentId);

    /**
     * 添加系统参数缓存
     *
     * @param key
     * @return
     */
    public SysConfig addSysConfigCache(String key);

    /**
     * 更新系统参数缓存
     *
     * @param key
     * @return
     */
    public SysConfig updateSysConfigCache(String key);

    /**
     * 删除系统参数缓存
     *
     * @param key
     */
    public void removeSysConfigCache(String key);

    /**
     * 添加鉴权缓存
     *
     * @param code
     * @return
     */
    public AuthOrgInfoDto authInfoCache(String code);

    /**
     * 修改鉴权缓存
     *
     * @param code
     * @return
     */
    public AuthOrgInfoDto updateAuthInfoCache(String code);

    /**
     * 删除鉴权缓存
     *
     * @param code
     */
    public void removeAuthInfoCache(String code);

    /**
     * 添加考试语音缓存
     *
     * @param id
     * @return
     */
    public TEAudio examAudioCache(Long id);

    /**
     * 修改考试语音缓存
     *
     * @param id
     * @return
     */
    public TEAudio updateExamAudioCache(Long id);

    /**
     * 删除考试语音缓存
     *
     * @param id
     */
    public void removeExamAudioCache(Long id);

    /**
     * 添加附件缓存
     *
     * @param id
     * @return
     */
    public TBAttachment attachmentCache(Long id);

    /**
     * 修改附件缓存
     *
     * @param id
     * @return
     */
    public TBAttachment updateAttachmentCache(Long id);

    /**
     * 删除附件缓存
     *
     * @param id
     */
    public void removeAttachmentCache(Long id);
}
