Initial commit
This commit is contained in:
27
Groceries.Data/Transactions/Transaction.cs
Normal file
27
Groceries.Data/Transactions/Transaction.cs
Normal 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; }
|
||||
}
|
26
Groceries.Data/Transactions/TransactionItem.cs
Normal file
26
Groceries.Data/Transactions/TransactionItem.cs
Normal 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; }
|
||||
}
|
21
Groceries.Data/Transactions/TransactionPromotion.cs
Normal file
21
Groceries.Data/Transactions/TransactionPromotion.cs
Normal 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; }
|
||||
}
|
7
Groceries.Data/Transactions/TransactionPromotionItem.cs
Normal file
7
Groceries.Data/Transactions/TransactionPromotionItem.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace Groceries.Data;
|
||||
|
||||
internal sealed class TransactionPromotionItem
|
||||
{
|
||||
public Guid TransactionPromotionId { get; init; }
|
||||
public Guid ItemId { get; init; }
|
||||
}
|
9
Groceries.Data/Transactions/TransactionTotal.cs
Normal file
9
Groceries.Data/Transactions/TransactionTotal.cs
Normal 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; }
|
||||
}
|
Reference in New Issue
Block a user