using EVCB_OCPP.Domain.Models.MainDb;

namespace EVCB_OCPP.DBAPI.Services.ServerMessageServices;

public interface IServerMessageService
{
    ValueTask<string> AddServerMessage(string ChargeBoxId, string OutAction, string OutRequest, string CreatedBy, DateTime? CreatedOn = null, string SerialNo = "", string InMessage = "", CancellationToken token = default);
    ValueTask<List<ServerMessage>> GetNeedSendToClientServerMessages();
    ValueTask<bool> SetServerMessageResponseReceived(int id, string InMessage = "", DateTime ReceivedOn = default);
    ValueTask<bool> SetServerMessageServerHandling(int id, DateTime UpdatedOn = default);
    ValueTask<List<ServerMessage>> GetServerMessages();
    ValueTask SaveCompletedMessageToDb();
}