5XHBBUBSPTNNPEZZVELCS5AEAKQVHEMLAI2URKBMMBUGWTPARFVQC
ZQXOYD7OCQ5DOM7TSCGCJ4RSSREE2XOINAYVJBP37NJKVRAYJZNAC
MM3HQWNEUZVOGQ3WWBTECBY6F47SN4U43I5UNDOAFWO3R7U5XPBAC
BPHFBV52V4OA6WLKXGFK7Q4IM5EUS2SKAW5ZGSA6K3NJFJJVATIAC
NJ233BBUD2WBHKNEWPO5JWQTECTGR5F43NYTSNOZ5J3K22U5C47QC
WBTHWJJ22XN2QPKFZVIBBQE2QMIHCQFYPBV4QWT7W6JEOU6XAVJAC
ZI2RJOZ2HXBHX7L54BTSDKESY6NG5KBJLVHCNY7K7ZLGIUOIHQUQC
E4HFJ4L4PAGV7R7EXVG2B2CWDGGW7XWU4D37VURZ66HZ3ILHCFUAC
NDMM44EV2XD5RP7J4Q25ZX52LUP7WOMTKO3C2PDXW7IWFEVWUW6QC
WA2FN2YR2TDCOLDWCZPYHRHPKJXE7KUB7AFERUCEB3KODVBNCUVQC
2ZHTBPOJQI4FS3OQJXUDBD62HVFPGSKI633IXXKAGPGQLURMKVPAC
EGNRBQUMOZHAF5B7KCMTAPMB4H3USK4MK33Q6T5V26D6HOJNW6LQC
NBGKNI25T2AKNWDH5Z6U6JDUHLQPNRL6GQFF5VS37OOHONSP4CKQC
BUCBGGRUTH7HNAADSU24U4BPHPUY7QYB3KRZPIIDUERZTL3YNTZQC
YUWSM4FCXGL5DRWUGCN26ADHV27THP74V6HFUR4CDUICVPIGX3QAC
WYTMZJFYVKHR4QH7AV5JUNWXT6NAC5NNQNPZCQSDI6LGI7DVXFYAC
ONTV36PSUYFGQS4OJVRW4JO3SA6XMTUN3G4HIO6YVCOLUV5DXXPAC
VIGS24FLOPPTBLIBZIB2LFMYCDZ3AO4FBXYADAKQMJFNPM4JHAGQC
UCY5PVFCT2QIOGR47KFS4KBF2ZPHRBOAIOH6PJEVWCHLMBRBLOMQC
CHOON7UFJCWBEFPYPXHT2PPBSF6MPSZPWELPH2HRCJ6ZKQBDWKYAC
SE6MCCXTIXSGMAH5EL7EPDXIQKV6THCCY2H4OQJJQOHCUQAWE5VQC
Y2ZGX4FCDVEXTYPOQNAZ5GKM2GBSF6B6EFN4EAP2V5XGHKFNCMSQC
(URL is not null and address is null and address2 is null and city is null and postal_code is null and coordinate is null and timezone is null) or
(address is not null and city is not null and postal_code is not null and coordinate is not null and timezone is not null)
(type = 'online' and url is not null and address is null and address2 is null and city is null and postal_code is null and coordinate is null and timezone is null) or
(type = 'physical' and address is not null and city is not null and postal_code is not null and coordinate is not null and timezone is not null)
ID serial primary key,
product integer not null references product on delete cascade,
portions smallint check (portions > 1),
variant_id serial primary key,
product_id integer not null references product on delete cascade,
portions smallint not null default 1 check (portions > 0),
create unique index unique_variant_2 on variant (product, quantity) where portions is null and flavor is null;
create unique index unique_variant_3_portions on variant (product, portions, quantity) where portions is not null and flavor is null;
create unique index unique_variant_3_flavor on variant (product, quantity, flavor) where portions is null and flavor is not null;
create unique index unique_variant_4 on variant (product, portions, quantity, flavor) where portions is not null and flavor is not null;
create unique index unique_variant_2 on variant (product_id, quantity) where portions is null and flavor is null;
create unique index unique_variant_3_portions on variant (product_id, portions, quantity) where portions is not null and flavor is null;
create unique index unique_variant_3_flavor on variant (product_id, quantity, flavor) where portions is null and flavor is not null;
create unique index unique_variant_4 on variant (product_id, portions, quantity, flavor) where portions is not null and flavor is not null;
ID serial primary key,
variant integer not null references variant on delete cascade,
store integer not null references store on delete cascade,
menu_item_id serial primary key,
variant_id integer not null references variant on delete cascade,
store_id integer not null references store on delete cascade,
create type COMT as enum ('inconclusive', 'Val/Val', 'Val/Met', 'Met/Met');
create type AKT1 as enum ('inconclusive', 'T/T', 'C/T', 'C/C');
create type CYP2C9 as enum ('inconclusive', '*1/*1', '*1/*3', '*3/*3');
create type comt as enum ('inconclusive', 'Val/Val', 'Val/Met', 'Met/Met');
create type akt1 as enum ('inconclusive', 'T/T', 'C/T', 'C/C');
create type cyp2c9 as enum ('inconclusive', '*1/*1', '*1/*3', '*3/*3');
create type CYP2C19_2 as enum ('inconclusive', '*1/*1', '*1/*2', '*2/*2');
create type CYP2C19_3 as enum ('inconclusive', '*1/*1', '*1/*3', '*3/*3');
create type CYP2C19_17 as enum ('inconclusive', '*1/*1', '*1/*17', '*17/*17');
create type cyp2c19_2 as enum ('inconclusive', '*1/*1', '*1/*2', '*2/*2');
create type cyp2c19_3 as enum ('inconclusive', '*1/*1', '*1/*3', '*3/*3');
create type cyp2c19_17 as enum ('inconclusive', '*1/*1', '*1/*17', '*17/*17');
COMT COMT,
AKT1 AKT1,
CYP2C9 CYP2C9,
CYP2C19_2 CYP2C19_2,
CYP2C19_3 CYP2C19_3,
CYP2C19_17 CYP2C19_17
comt comt,
akt1 akt1,
cyp2c9 cyp2c9,
cyp2c19_2 cyp2c19_2,
cyp2c19_3 cyp2c19_3,
cyp2c19_17 cyp2c19_17
ID serial primary key,
user_account integer references user_account on delete cascade,
store integer not null references store on delete cascade,
status status,
cart_id serial primary key,
user_id integer references usr on delete cascade,
store_id integer not null references store on delete cascade,
status status not null default 'active',
ID serial primary key,
cart integer not null references cart on delete cascade,
menu_item integer not null references menu_item on delete cascade,
line_item_id serial primary key,
cart_id integer not null references cart on delete cascade,
menu_item_id integer not null references menu_item on delete cascade,
periods.add_system_time_period('user_account', excluded_column_names => ARRAY['token_hash', 'token_expiry']),
periods.add_system_versioning('user_account'),
periods.add_system_time_period('usr', excluded_column_names => ARRAY['token_hash', 'token_expiry']),
periods.add_system_versioning('usr'),
if(e[i][0].handle === 'thc-dark-chocolate-bar-bhang' || e[i][0].handle === 'thc-milk-chocolate-bar-bhang' && quantity === '10' && portions === null) {
if(e[i][0].handle === 'thc-dark-chocolate-bar-bhang' || e[i][0].handle === 'thc-milk-chocolate-bar-bhang' && quantity === '10' && portions === 1) {
} else if(e[i][0].handle === 'balance-solid-milk-chocolate-chowie-wowie' || e[i][0].handle === 'thc-solid-milk-chocolate-chowie-wowie' && quantity === '16' && portions === null) {
} else if(e[i][0].handle === 'balance-solid-milk-chocolate-chowie-wowie' || e[i][0].handle === 'thc-solid-milk-chocolate-chowie-wowie' && quantity === '16' && portions === 1) {
} else if(e[i][0].handle === 'pause-dark-milk-chocolate-bar-tokyo-smoke' || e[i][0].handle === 'go-dark-milk-chocolate-bar-tokyo-smoke' && quantity === '32' && portions === null) {
} else if(e[i][0].handle === 'pause-dark-milk-chocolate-bar-tokyo-smoke' || e[i][0].handle === 'go-dark-milk-chocolate-bar-tokyo-smoke' && quantity === '32' && portions === 1) {