package com.njcn.gather.user.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.user.user.pojo.po.SysUser;
import com.njcn.gather.user.user.pojo.po.SysUserSignature;

import java.util.List;

/**
 * 用户签名服务。
 */
public interface ISysUserSignatureService extends IService<SysUserSignature> {

    /**
     * 回填用户签名展示信息。
     *
     * @param users 用户列表
     */
    void fillSignatureInfo(List<SysUser> users);

    /**
     * 查询用户当前签名。
     *
     * @param userId 用户ID
     * @return 签名记录
     */
    SysUserSignature getActiveByUserId(String userId);

    /**
     * 保存或更新签名元数据。
     *
     * @param userId           用户ID
     * @param userName         用户名
     * @param fileId           通用文件ID
     * @return 旧签名记录，若不存在则返回 null
     */
    SysUserSignature saveOrUpdateSignature(String userId, String userName, String fileId);

    /**
     * 同步签名记录中的用户名。
     *
     * @param userId   用户ID
     * @param userName 用户名
     */
    void syncUserName(String userId, String userName);

    /**
     * 查询用户签名列表。
     *
     * @param userIds 用户ID列表
     * @return 签名记录
     */
    List<SysUserSignature> listActiveByUserIds(List<String> userIds);

    /**
     * 逻辑删除用户签名记录。
     *
     * @param signatures 签名记录
     */
    void markDeleted(List<SysUserSignature> signatures);
}
