using CommandDotNet;
using DigitalData.Core.Abstraction.Application;
using DigitalData.Core.Abstraction.Application.DTO;
using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiver;
using EnvelopeGenerator.Application.Common.Dto.Messaging;
using EnvelopeGenerator.Application.Envelopes;
using EnvelopeGenerator.Application.Envelopes.Queries;
using EnvelopeGenerator.Application.Receivers.Queries;
using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Domain.Constants;
using EnvelopeGenerator.Domain.Entities;
namespace EnvelopeGenerator.Application.Common.Interfaces.Services;
///
///
///
[Obsolete("Use MediatR")]
public interface IEnvelopeReceiverService : IBasicCRUDService
{
///
///
///
///
///
///
///
///
Task>> ReadByUuidAsync(string uuid, bool withEnvelope = true, bool withReceiver = false, bool readOnly = true);
///
///
///
///
///
///
///
Task>> ReadAccessCodeByUuidAsync(string uuid, bool withEnvelope = false, bool withReceiver = true);
///
///
///
///
///
///
///
///
Task>> ReadBySignatureAsync(string signature, bool withEnvelope = false, bool withReceiver = true, bool readOnly = true);
///
///
///
///
///
///
///
///
///
Task> ReadByUuidSignatureAsync(string uuid, string signature, bool withEnvelope = true, bool withReceiver = true, bool readOnly = true);
///
///
///
///
///
///
///
///
///
Task> ReadWithSecretByUuidSignatureAsync(string uuid, string signature, bool withEnvelope = true, bool withReceiver = true, bool readOnly = true);
///
///
///
///
///
///
///
///
Task> ReadByEnvelopeReceiverIdAsync(string envelopeReceiverId, bool withEnvelope = true, bool withReceiver = true, bool readOnly = true);
///
///
///
///
///
///
Task> ReadAccessCodeByIdAsync(int envelopeId, int receiverId);
///
///
///
///
///
///
///
Task> VerifyAccessCodeAsync(string uuid, string signature, string accessCode);
///
///
///
///
///
///
[Command("verify-access-code-async-by-id")]
Task> VerifyAccessCodeAsync(string envelopeReceiverId, string accessCode);
///
///
///
///
///
Task> IsExisting(string envelopeReceiverId);
///
///
///
///
///
///
///
///
///
///
Task>> ReadByUsernameAsync(string username, EnvelopeStatus? min_status = null, EnvelopeStatus? max_status = null, ReadEnvelopeQuery? envelopeQuery = null, ReadReceiverQuery? receiverQuery = null, params EnvelopeStatus[] ignore_statuses);
///
///
///
///
///
///
///
Task> ReadLastUsedReceiverNameByMailAsync(string? mail = null, int? id = null, string? signature = null);
///
///
///
///
///
///
Task> SendSmsAsync(string envelopeReceiverId, string message);
///
///
///
///
///
Task>> ReadWithSecretByUuidAsync(string uuid);
}