using EnvelopeGenerator.Application.Common.Dto;
using EnvelopeGenerator.Application.Common.Dto.Receiver;
using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiverReadOnly;
///
/// Represents a read-only Data Transfer Object (DTO) for an envelope receiver.
/// Contains information about the receiver, associated envelope, and audit details.
///
[ApiExplorerSettings(IgnoreApi = true)]
public class EnvelopeReceiverReadOnlyDto
{
///
/// Gets or inits the unique identifier of the envelope receiver.
///
public long Id { get; init; }
///
/// Gets or inits the identifier of the associated envelope.
///
public long EnvelopeId { get; init; }
///
/// Gets or inits the email address of the receiver.
///
public required string ReceiverMail { get; set; }
///
/// Gets or inits the date until which the receiver is valid.
///
public DateTime DateValid { get; set; }
///
/// Gets or inits the date and time when the receiver was added.
///
public DateTime AddedWhen { get; init; }
///
/// Gets or inits the user who added the receiver.
/// Default value is 'unknown'.
///
public string AddedWho { get; init; } = "Unknown";
///
/// Gets or inits the associated envelope details.
///
public EnvelopeDto? Envelope { get; set; }
///
/// Gets or inits the user who last changed the receiver, if any.
///
public string? ChangedWho { get; set; }
///
/// Gets or inits the date and time when the receiver was last changed, if any.
///
public DateTime? ChangedWhen { get; set; }
///
/// Gets or inits the associated receiver details.
///
public ReceiverDto? Receiver { get; set; }
}