Data Model - shifatullah/ShoeStore GitHub Wiki
Common (shared by all bounded contexts)
AuditInfo (value object)
CreationOn
CreatedBy
ModifiedOn
ModifiedBy
DeletedOn
DeletedBy
AddressInfo (value object)
AddressLine1
AddressLine2
Suburb
State
PostCode
Admin Bounded Context (internal/private/very secured)
User (aggregate root)
Id
FirstName
LastName
EmailAddress
MobilePhone
LoginName
PasswordHash
Photo (byte[])
Products Bounded Context (internal/private)
Asset (asset aggregate root - TPT inheritance strategy)
Id
Name
AuditInfo
ImageAsset (asset entity)
AssetId
Size (Small 100 x 100, Medium 640 x 640, Large 800 x 800)
VideoAsset (asset entity)
AssetId
Catalogue (catalogue aggregate root)
Id
Name
State (Draft/Published)
PublishedOn
AuditInfo
Category (category aggregate root)
Id (hierarchicalid datatype)
Name (unique under parent category)
Slug
ParentCategoryId (hierarchicalid datatype)
Rank
AuditInfo
Product (product aggregate root)
Id
Name
Code
Rank
ShortDescription
LongDescription
Cost
Stock
CategoryId (hierarchicalid datatype)
AuditInfo
CatalogueProduct (catalogue entity)
CatalogueId
ProductId
AuditInfo
ProductPrice (product entity)
ProductId
Price
StartDate
EndDate
ProductAsset (product entity)
Name
ProductId
Type (Thumbnail, Product Page, Zoom)
AssetId
AuditInfo
Listing Bounded Context (public)
CategoryListing
Id (hierarchicalid datatype)
ParentCategoryListingId
CategoryData (json datatype)
ProductListing
Id
ProductData (json datatype)
Code (virtual column)
CategoryId (virtual column)
Basket Bounded Context (public)
Session (session aggregate root)
Id
UserIP
UserAgent
BasketId
AuditInfo
Basket (basket aggregate root)
Id
FirstName
LastName
MobileNumber
PhoneNumber
EmailAddress
BillingAddressInfo
ShippingAddressInfo
ShippingTotal
TaxTotal
SubTotal
OrderTotal
Status (Created/ProductSelected/Booked/Shipped)
AuditInfo
BasketItem (basket entity)
Id
BasketId
ProductCode
Cost
Price
Quantity
TotalPrice
AuditInfo