phronCare/Domain/Entities/ESalesFiscalDocument.cs
leandro 5e894ddca5
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 7m39s
feat(domain): add sales document domain contracts with coverage
- add sales document domain entities
- add coverage-oriented DTO contracts
- add sales document enums/constants
- prepare domain model for mixed coverage scenarios
- align domain contracts with future ARCA integration

closes #57
2026-05-07 00:33:34 -03:00

109 lines
3.7 KiB
C#

namespace Domain.Entities
{
public partial class ESalesFiscalDocument
{
public int Id { get; set; }
/// <summary>
/// Documento comercial interno vinculado al documento fiscal.
/// </summary>
public int SalesdocumentId { get; set; }
/// <summary>
/// Estado fiscal independiente del estado comercial. Ejemplos: None, Pending, Authorized, Rejected, Error, PendingReconciliation.
/// </summary>
public int FiscalStatus { get; set; }
/// <summary>
/// Ambiente fiscal usado para autorizacion: homologacion, produccion u otro valor definido por configuracion.
/// </summary>
public string Environment { get; set; } = null!;
/// <summary>
/// Punto de venta fiscal ARCA/AFIP.
/// </summary>
public short? PointOfSale { get; set; }
/// <summary>
/// Tipo de comprobante fiscal ARCA/AFIP utilizado en FECAESolicitar.
/// </summary>
public int? VoucherType { get; set; }
/// <summary>
/// Letra fiscal del comprobante autorizado o a autorizar.
/// </summary>
public string? VoucherLetter { get; set; }
/// <summary>
/// Numero fiscal del comprobante asignado para ARCA. Se mantiene separado del numero interno.
/// </summary>
public int? VoucherNumber { get; set; }
/// <summary>
/// Codigo de autorizacion electronico obtenido desde ARCA/AFIP.
/// </summary>
public string? Cae { get; set; }
/// <summary>
/// Fecha de vencimiento del CAE.
/// </summary>
public DateTime? CaeExpirationDate { get; set; }
/// <summary>
/// Huella de idempotencia fiscal para evitar duplicacion de solicitudes ante ARCA.
/// </summary>
public string? RequestFingerprint { get; set; }
/// <summary>
/// Indica si el resultado fiscal es final y no debe volver a mutar salvo procesos controlados de auditoria.
/// </summary>
public bool IsFinal { get; set; }
/// <summary>
/// Payload JSON enviado a ARCA/AFIP.
/// </summary>
public string? ArcaRequestPayloadJson { get; set; }
/// <summary>
/// Payload JSON recibido desde ARCA/AFIP.
/// </summary>
public string? ArcaResponsePayloadJson { get; set; }
/// <summary>
/// Errores devueltos por ARCA/AFIP serializados como JSON.
/// </summary>
public string? ErrorsJson { get; set; }
/// <summary>
/// Eventos devueltos por ARCA/AFIP serializados como JSON.
/// </summary>
public string? EventsJson { get; set; }
/// <summary>
/// Observaciones devueltas por ARCA/AFIP serializadas como JSON.
/// </summary>
public string? ObservationsJson { get; set; }
/// <summary>
/// Fecha/hora UTC del intento de autorizacion fiscal.
/// </summary>
public DateTime? AttemptedAtUtc { get; set; }
/// <summary>
/// Fecha/hora UTC de finalizacion del flujo fiscal.
/// </summary>
public DateTime? CompletedAtUtc { get; set; }
/// <summary>
/// Indica que el documento fiscal fue resuelto mediante reconciliacion posterior a timeout o resultado ambiguo.
/// </summary>
public bool ReconciledAfterTimeout { get; set; }
public DateTime Createdat { get; set; }
public DateTime? Modifiedat { get; set; }
public virtual ICollection<ESalesFiscalDocumentAssociation> PhSSalesFiscalDocumentAssociations { get; set; } = new List<ESalesFiscalDocumentAssociation>();
}
}