50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using GrossesMitainesAPI.Data;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel.DataAnnotations;
 | 
						|
using System.ComponentModel.DataAnnotations.Schema;
 | 
						|
 | 
						|
namespace GrossesMitainesAPI.Models;
 | 
						|
public class InvoiceModel {
 | 
						|
    public enum InStates { 
 | 
						|
        Confirmed,
 | 
						|
        Cancelled,
 | 
						|
        Preparing,
 | 
						|
        Shipping,
 | 
						|
        Shipped,
 | 
						|
        Returned
 | 
						|
    }
 | 
						|
    public class ProductInvoice {
 | 
						|
        [Key]
 | 
						|
        public int Id { get; set; }
 | 
						|
        public ProductModel Product { get; set; }
 | 
						|
        public uint Quantity { get; set; }
 | 
						|
    }
 | 
						|
 | 
						|
    [Key]
 | 
						|
    public int Id { get; set; }
 | 
						|
    [Required, MinLength(2), MaxLength(30)]
 | 
						|
    public string FirstName { get; set; }
 | 
						|
    [Required, MinLength(1), MaxLength(30)]
 | 
						|
    public string LastName { get; set; }
 | 
						|
    [Required, Phone]
 | 
						|
    public string PhoneNumber { get; set; }
 | 
						|
    [Required, EmailAddress]
 | 
						|
    public string EmailAddress { get; set; }
 | 
						|
    public InventoryUser? LinkedAccount { get; set; }
 | 
						|
    public DateTime PurchaseDate { get; set; } = DateTime.Now;
 | 
						|
    [Required]
 | 
						|
    public List<ProductInvoice> Products { get; set; }
 | 
						|
    [Required]
 | 
						|
    public AddressModel ShippingAddress { get; set; }
 | 
						|
    public InStates Status { get; set; } = InStates.Confirmed;
 | 
						|
 | 
						|
    public InvoiceModel() { }
 | 
						|
    public InvoiceModel(SendInvoiceModel sinv) { 
 | 
						|
        FirstName = sinv.FirstName;
 | 
						|
        LastName = sinv.LastName;
 | 
						|
        PhoneNumber = sinv.PhoneNumber;
 | 
						|
        EmailAddress = sinv.EmailAddress;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |