package com.liquidnet.service.kylin.service.admin;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.kylin.dao.KylinArtistOperationLogDao;
import com.liquidnet.service.kylin.entity.KylinArtistOperationLog;

/**
 * <p>
 * 艺人操作日志 服务类
 * </p>
 *
 * @author liquidnet
 * @since 2026-03-04
 */
public interface IKylinArtistOperationLogService extends IService<KylinArtistOperationLog> {

    /**
     * 记录操作日志（自动获取当前用户）
     *
     * @param artistId 艺人ID
     * @param operationType 操作类型 1新增 2编辑 3删除
     * @param operationContent 操作内容描述
     */
    void recordLog(String artistId, Integer operationType, String operationContent);

    /**
     * 记录操作日志（指定操作人）
     *
     * @param artistId 艺人ID
     * @param operationType 操作类型 1新增 2编辑 3删除
     * @param operationContent 操作内容描述
     * @param operatorId 操作人ID
     * @param operatorName 操作人名称
     */
    void recordLog(String artistId, Integer operationType, String operationContent, String operatorId, String operatorName);

    /**
     * 获取艺人操作记录列表
     *
     * @param artistId 艺人ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 操作记录分页列表
     */
    PageInfo<KylinArtistOperationLogDao> getOperationLogs(String artistId, Integer pageNum, Integer pageSize);
}
