marco.pms.api/Marco.Pms.Model/PurchaseInvoice/DeliveryChallanDetails.cs

76 lines
2.5 KiB
C#

using Marco.Pms.Model.Employees;
using Marco.Pms.Model.Utilities;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using System.ComponentModel.DataAnnotations.Schema;
namespace Marco.Pms.Model.PurchaseInvoice
{
/// <summary>
/// Represents a detail of a delivery challan in the Purchase Invoice system.
/// This class inherits from the TenantRelation class and adds specific properties related to a delivery challan.
/// </summary>
public class DeliveryChallanDetails : TenantRelation
{
/// <summary>
/// Gets or sets the unique identifier for the delivery challan.
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// Gets or sets the delivery challan number.
/// </summary>
public string DeliveryChallanNumber { get; set; } = default!;
/// <summary>
/// Gets or sets the date of the delivery challan.
/// </summary>
public DateTime DeliveryChallanDate { get; set; }
/// <summary>
/// Gets or sets the description of the delivery challan.
/// </summary>
public string Description { get; set; } = default!;
/// <summary>
/// Gets or sets the unique identifier of the associated PurchaseInvoice.
/// </summary>
public Guid PurchaseInvoiceId { get; set; }
/// <summary>
/// Gets or sets the associated PurchaseInvoice.
/// </summary>
[ValidateNever]
[ForeignKey("PurchaseInvoiceId")]
public PurchaseInvoiceDetails? PurchaseInvoice { get; set; }
/// <summary>
/// Gets or sets the unique identifier of the associated Attachment.
/// </summary>
public Guid AttachmentId { get; set; }
/// <summary>
/// Gets or sets the associated Attachment.
/// </summary>
[ValidateNever]
[ForeignKey("AttachmentId")]
public PurchaseInvoiceAttachment? Attachment { get; set; }
/// <summary>
/// Gets or sets the date and time the record was created.
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// Gets or sets the unique identifier of the user who created the record.
/// </summary>
public Guid CreatedById { get; set; }
/// <summary>
/// Gets or sets the user who created the record.
/// </summary>
[ValidateNever]
[ForeignKey("CreatedById")]
public Employee? CreatedBy { get; set; }
}
}