Initial commit

This commit is contained in:
2023-07-23 13:34:00 +01:00
commit 967c16b6bf
65 changed files with 2868 additions and 0 deletions

View File

@ -0,0 +1,27 @@
namespace Groceries.Data;
using System.Text.Json.Serialization;
public class Transaction
{
[JsonConstructor]
public Transaction(Guid id, DateTime createdAt, Guid storeId)
{
Id = id;
CreatedAt = createdAt;
StoreId = storeId;
}
public Transaction(DateTime createdAt, Guid storeId) : this(default, createdAt, storeId)
{
}
public Guid Id { get; init; }
public DateTime CreatedAt { get; init; }
public Guid StoreId { get; init; }
public ICollection<TransactionItem> Items { get; init; } = new List<TransactionItem>();
public ICollection<TransactionPromotion> Promotions { get; init; } = new List<TransactionPromotion>();
public Store? Store { get; init; }
}

View File

@ -0,0 +1,26 @@
namespace Groceries.Data;
using System.Text.Json.Serialization;
public class TransactionItem
{
[JsonConstructor]
public TransactionItem(Guid transactionId, Guid itemId, decimal price, int quantity)
{
TransactionId = transactionId;
ItemId = itemId;
Price = price;
Quantity = quantity;
}
public TransactionItem(Guid itemId, decimal price, int quantity) : this(default, itemId, price, quantity)
{
}
public Guid TransactionId { get; init; }
public Guid ItemId { get; init; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public Item? Item { get; init; }
}

View File

@ -0,0 +1,21 @@
namespace Groceries.Data;
public class TransactionPromotion
{
public TransactionPromotion(Guid id, Guid transactionId, string name, decimal amount)
{
Id = id;
TransactionId = transactionId;
Name = name;
Amount = amount;
}
public Guid Id { get; set; }
public Guid TransactionId { get; set; }
public string Name { get; set; } = null!;
public decimal Amount { get; set; }
public ICollection<Item> Items { get; init; } = new List<Item>();
public Transaction? Transaction { get; init; }
}

View File

@ -0,0 +1,7 @@
namespace Groceries.Data;
internal sealed class TransactionPromotionItem
{
public Guid TransactionPromotionId { get; init; }
public Guid ItemId { get; init; }
}

View File

@ -0,0 +1,9 @@
namespace Groceries.Data;
public class TransactionTotal
{
public Guid TransactionId { get; init; }
public decimal Total { get; init; }
public Transaction? Transaction { get; init; }
}