package com.writeoff.module.audit.repository;

import com.writeoff.module.audit.model.AuditTask;

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

public interface AuditTaskRepository {
    AuditTask save(AuditTask task);

    Optional<AuditTask> findById(Long id);

    List<AuditTask> findAll();

    Optional<AuditTask> findLatestByMeetingId(Long meetingId);

    int withdrawPendingByMeetingId(Long meetingId, String reason, Long operatorUserId);

    void transfer(Long taskId, Long toUserId, String reason, Long operatorUserId);

    int batchRemind(List<Long> taskIds, Long operatorUserId);

    Map<String, Object> slaStat();
}
