Domain (foodmarket.Domain.Catalog): - Global references: Country (ISO-2), Currency (ISO-3 + symbol + minor unit) - Tenant references: VatRate (Percent + IncludedInPrice + IsDefault), UnitOfMeasure (ОКЕИ code + DecimalPlaces) - Counterparty: kind (Supplier/Customer/Both), type (Legal/Individual), BIN/IIN/TaxNumber, bank details - Store + RetailPoint with fiscal placeholders - ProductGroup: hierarchy via ParentId + denormalized Path - PriceType (Розничная/Оптовая), Product (article, VAT, group, supplier, flags IsService/IsWeighed/IsAlcohol/IsMarked, min/max stock) - ProductPrice (composite unique product+priceType), ProductBarcode (EAN13/EAN8/CODE128/UPC), ProductImage Infrastructure: - CatalogConfigurations with fluent API (indexes, precision 18/4 for money, FK with Restrict) - 13 new DbSets on AppDbContext + builder.ConfigureCatalog() - Migration Phase1Catalog — adds countries, currencies, vat_rates, units_of_measure, counterparties, stores, retail_points, product_groups, price_types, products, product_prices, product_barcodes, product_images Seeders: - SystemReferenceSeeder (always): 12 countries (KZ, RU, CN, TR, …), 5 currencies (KZT primary, RUB, USD, EUR, CNY) - DevDataSeeder extended: for Demo Market seeds VAT (0%, 12% default+included), units (шт/кг/л/м/уп), price types (Розничная default, Оптовая), main store, POS-1 Total DB schema: 26 tables. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
398 B
C#
32 lines
398 B
C#
namespace foodmarket.Domain.Catalog;
|
|
|
|
public enum CounterpartyKind
|
|
{
|
|
Supplier = 1,
|
|
Customer = 2,
|
|
Both = 3,
|
|
}
|
|
|
|
public enum CounterpartyType
|
|
{
|
|
LegalEntity = 1,
|
|
Individual = 2,
|
|
}
|
|
|
|
public enum StoreKind
|
|
{
|
|
Warehouse = 1,
|
|
RetailFloor = 2,
|
|
}
|
|
|
|
public enum BarcodeType
|
|
{
|
|
Ean13 = 1,
|
|
Ean8 = 2,
|
|
Code128 = 3,
|
|
Code39 = 4,
|
|
Upca = 5,
|
|
Upce = 6,
|
|
Other = 99,
|
|
}
|