GGMM/GrossesMitaines/GrossesMitainesAPI/Models/InvoiceModel.cs
2022-11-04 15:22:24 -07:00

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;
}
}