adds more store-focused data structures
This commit is contained in:
		
							
								
								
									
										93
									
								
								SCHEMA.md
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								SCHEMA.md
									
									
									
									
									
								
							@ -817,3 +817,96 @@ CREATE TABLE CollectionOtherProducts (
 | 
			
		||||
CREATE INDEX CollectionOtherProducts_collection_id_IDX ON CollectionOtherProducts (collection_id);
 | 
			
		||||
CREATE INDEX CollectionOtherProducts_other_product_id_IDX ON CollectionOtherProducts (other_product_id);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# Skus
 | 
			
		||||
The Skus table will contain SKUs () representing items available for Purchase through the server.
 | 
			
		||||
 | 
			
		||||
``` sql
 | 
			
		||||
CREATE TABLE Skus (
 | 
			
		||||
	id TEXT(36),
 | 
			
		||||
	item_type TEXT,
 | 
			
		||||
	item_id TEXT(36),
 | 
			
		||||
	variant TEXT,
 | 
			
		||||
	description TEXT,
 | 
			
		||||
	price NUMERIC DEFAULT (0.00),
 | 
			
		||||
	requires_shipping INTEGER DEFAULT (0),
 | 
			
		||||
	shipping_charge NUMERIC DEFAULT (0.00),
 | 
			
		||||
	CONSTRAINT Skus_PK PRIMARY KEY (id)
 | 
			
		||||
);
 | 
			
		||||
CREATE INDEX Skus_item_type_IDX ON Skus (item_type);
 | 
			
		||||
CREATE INDEX Skus_item_id_IDX ON Skus (item_id);
 | 
			
		||||
CREATE INDEX Skus_variant_IDX ON Skus (variant);
 | 
			
		||||
CREATE INDEX Skus_description_IDX ON Skus (description);
 | 
			
		||||
CREATE INDEX Skus_price_IDX ON Skus (price);
 | 
			
		||||
CREATE INDEX Skus_requires_shipping_IDX ON Skus (requires_shipping);
 | 
			
		||||
CREATE INDEX Skus_shipping_charge_IDX ON Skus (shipping_charge);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# LineItems
 | 
			
		||||
The LineItems table will contain individual SKUs and their associated quantites as part of a Purchase.
 | 
			
		||||
 | 
			
		||||
``` sql
 | 
			
		||||
CREATE TABLE LineItems (
 | 
			
		||||
	id TEXT(36),
 | 
			
		||||
	sku_id TEXT(36),
 | 
			
		||||
	quantity INTEGER DEFAULT (1),
 | 
			
		||||
	CONSTRAINT LineItems_PK PRIMARY KEY (id),
 | 
			
		||||
	CONSTRAINT LineItems_FK FOREIGN KEY (sku_id) REFERENCES Skus(id)
 | 
			
		||||
);
 | 
			
		||||
CREATE INDEX LineItems_sku_id_IDX ON LineItems (sku_id);
 | 
			
		||||
CREATE INDEX LineItems_quantity_IDX ON LineItems (quantity);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# CouponCodes
 | 
			
		||||
The CouponCodes table will contain coupon codes that can be redeemed for a discount, either by amount or percentage, on a Purchase.
 | 
			
		||||
 | 
			
		||||
``` sql
 | 
			
		||||
CREATE TABLE CouponCodes (
 | 
			
		||||
	id TEXT(36),
 | 
			
		||||
	name TEXT,
 | 
			
		||||
	code TEXT,
 | 
			
		||||
	uses INTEGER DEFAULT (0),
 | 
			
		||||
	max_uses INTEGER DEFAULT (0),
 | 
			
		||||
	expiration INTEGER,
 | 
			
		||||
	discount_flat NUMERIC DEFAULT (0.00),
 | 
			
		||||
	discount_percentage NUMERIC DEFAULT (0.00),
 | 
			
		||||
	is_sku_specific INTEGER DEFAULT (0),
 | 
			
		||||
	is_active INTEGER DEFAULT (0),
 | 
			
		||||
	created_by TEXT(36),
 | 
			
		||||
	created_at INTEGER,
 | 
			
		||||
	modified_by TEXT(36),
 | 
			
		||||
	modified_at INTEGER,
 | 
			
		||||
	deleted_by TEXT(36),
 | 
			
		||||
	deleted_at INTEGER,
 | 
			
		||||
	CONSTRAINT CouponCodes_PK PRIMARY KEY (id),
 | 
			
		||||
	CONSTRAINT CouponCodes_FK FOREIGN KEY (created_by) REFERENCES Persons(id),
 | 
			
		||||
	CONSTRAINT CouponCodes_FK_1 FOREIGN KEY (modified_by) REFERENCES Persons(id),
 | 
			
		||||
	CONSTRAINT CouponCodes_FK_2 FOREIGN KEY (deleted_by) REFERENCES Persons(id)
 | 
			
		||||
);
 | 
			
		||||
CREATE INDEX CouponCodes_name_IDX ON CouponCodes (name);
 | 
			
		||||
CREATE UNIQUE INDEX CouponCodes_code_IDX ON CouponCodes (code);
 | 
			
		||||
CREATE INDEX CouponCodes_uses_IDX ON CouponCodes (uses);
 | 
			
		||||
CREATE INDEX CouponCodes_max_uses_IDX ON CouponCodes (max_uses);
 | 
			
		||||
CREATE INDEX CouponCodes_expiration_IDX ON CouponCodes (expiration);
 | 
			
		||||
CREATE INDEX CouponCodes_is_sku_specific_IDX ON CouponCodes (is_sku_specific);
 | 
			
		||||
CREATE INDEX CouponCodes_is_active_IDX ON CouponCodes (is_active);
 | 
			
		||||
CREATE INDEX CouponCodes_created_by_IDX ON CouponCodes (created_by);
 | 
			
		||||
CREATE INDEX CouponCodes_created_at_IDX ON CouponCodes (created_at);
 | 
			
		||||
CREATE INDEX CouponCodes_modified_by_IDX ON CouponCodes (modified_by);
 | 
			
		||||
CREATE INDEX CouponCodes_modified_at_IDX ON CouponCodes (modified_at);
 | 
			
		||||
CREATE INDEX CouponCodes_deleted_by_IDX ON CouponCodes (deleted_by);
 | 
			
		||||
CREATE INDEX CouponCodes_deleted_at_IDX ON CouponCodes (deleted_at);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# CouponCodeSkus
 | 
			
		||||
The CouponCodeSkus table will relate a CouponCode to one or more Skus the CouponCode can be applied to, if CouponCode.is_sku_specific is true. (If CouponCode.is_sku_specific is false the CouponCode can be applied to an entire Purchase regardless of the Skus being purchased.)
 | 
			
		||||
 | 
			
		||||
``` sql
 | 
			
		||||
CREATE TABLE CouponCodeSkus (
 | 
			
		||||
	coupon_code_id TEXT(36),
 | 
			
		||||
	sku_id TEXT(36),
 | 
			
		||||
	CONSTRAINT CouponCodeSkus_PK PRIMARY KEY (coupon_code_id,sku_id),
 | 
			
		||||
	CONSTRAINT CouponCodeSkus_FK FOREIGN KEY (coupon_code_id) REFERENCES CouponCodes(id),
 | 
			
		||||
	CONSTRAINT CouponCodeSkus_FK_1 FOREIGN KEY (sku_id) REFERENCES Skus(id)
 | 
			
		||||
);
 | 
			
		||||
```
 | 
			
		||||
		Reference in New Issue
	
	Block a user