bazzar/migrations/20230603073510_init.sql
2023-06-09 07:21:40 +02:00

1299 lines
46 KiB
SQL

CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA
COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
CREATE TYPE payment_collection_statuses AS ENUM (
'not_paid',
'awaiting',
'authorized',
'partially_authorized',
'canceled'
);
CREATE TYPE payment_collection_types AS ENUM (
'order_edit'
);
CREATE TYPE cart_types AS ENUM (
'default',
'swap',
'draft_order',
'payment_link',
'claim'
);
CREATE TYPE claim_item_reasons AS ENUM (
'missing_item',
'wrong_item',
'production_failure',
'other'
);
CREATE TYPE claim_order_fulfillment_statuses AS ENUM (
'not_fulfilled',
'partially_fulfilled',
'fulfilled',
'partially_shipped',
'shipped',
'partially_returned',
'returned',
'canceled',
'requires_action'
);
CREATE TYPE claim_order_payment_statuses AS ENUM (
'na',
'not_refunded',
'refunded'
);
CREATE TYPE claim_order_types AS ENUM (
'refund',
'replace'
);
CREATE TYPE discount_condition_operators AS ENUM (
'in',
'not_in'
);
CREATE TYPE discount_condition_types AS ENUM (
'products',
'product_types',
'product_collections',
'product_tags',
'customer_groups'
);
CREATE TYPE discount_rule_allocations AS ENUM (
'total',
'item'
);
CREATE TYPE discount_rule_types AS ENUM (
'fixed',
'percentage',
'free_shipping'
);
CREATE TYPE draft_order_statuses AS ENUM (
'open',
'completed'
);
CREATE TYPE invite_roles AS ENUM (
'admin',
'member',
'developer'
);
CREATE TYPE order_fulfillment_statuses AS ENUM (
'not_fulfilled',
'partially_fulfilled',
'fulfilled',
'partially_shipped',
'shipped',
'partially_returned',
'returned',
'canceled',
'requires_action'
);
CREATE TYPE order_item_change_types AS ENUM (
'item_add',
'item_remove',
'item_update'
);
CREATE TYPE order_payment_statuses AS ENUM (
'not_paid',
'awaiting',
'captured',
'partially_refunded',
'refunded',
'canceled',
'requires_action'
);
CREATE TYPE order_statuses AS ENUM (
'pending',
'completed',
'archived',
'canceled',
'requires_action'
);
CREATE TYPE payment_session_statuses AS ENUM (
'authorized',
'pending',
'requires_more',
'error',
'canceled'
);
CREATE TYPE price_list_statuses AS ENUM (
'active',
'draft'
);
CREATE TYPE price_list_types AS ENUM (
'sale',
'override'
);
CREATE TYPE product_statuses AS ENUM (
'draft',
'proposed',
'published',
'rejected'
);
CREATE TYPE refund_reasons AS ENUM (
'discount',
'return',
'swap',
'claim',
'other'
);
CREATE TYPE return_statuses AS ENUM (
'requested',
'received',
'requires_action',
'canceled'
);
CREATE TYPE shipping_option_price_types AS ENUM (
'flat_rate',
'calculated'
);
CREATE TYPE shipping_option_requirement_types AS ENUM (
'min_subtotal',
'max_subtotal'
);
CREATE TYPE shipping_profile_types AS ENUM (
'default',
'gift_card',
'custom'
);
CREATE TYPE swap_fulfillment_statuses AS ENUM (
'not_fulfilled',
'fulfilled',
'shipped',
'partially_shipped',
'canceled',
'requires_action'
);
CREATE TYPE swap_payment_statuses AS ENUM (
'not_paid',
'awaiting',
'captured',
'confirmed',
'canceled',
'difference_refunded',
'partially_refunded',
'refunded',
'requires_action'
);
CREATE TYPE user_roles AS ENUM (
'admin',
'member',
'developer'
);
CREATE TABLE addresses
(
id uuid NOT NULL,
customer_id uuid,
company character varying,
first_name character varying,
last_name character varying,
address_1 character varying,
address_2 character varying,
city character varying,
country_code character varying,
province character varying,
postal_code character varying,
phone character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE analytics_configs
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
user_id uuid NOT NULL,
opt_out boolean DEFAULT false NOT NULL,
anonymize boolean DEFAULT false NOT NULL
);
CREATE TABLE batch_jobs
(
id uuid NOT NULL,
type text NOT NULL,
created_by character varying,
context jsonb,
result jsonb,
dry_run boolean DEFAULT false NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
pre_processed_at timestamp with time zone,
confirmed_at timestamp with time zone,
processing_at timestamp with time zone,
completed_at timestamp with time zone,
failed_at timestamp with time zone,
canceled_at timestamp with time zone,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone
);
CREATE TABLE carts
(
id uuid NOT NULL,
email character varying,
billing_address_id uuid,
shipping_address_id uuid,
region_id uuid NOT NULL,
customer_id uuid,
payment_id uuid,
type cart_types DEFAULT 'default'::cart_types NOT NULL,
completed_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
idempotency_key character varying,
context jsonb,
payment_authorized_at timestamp with time zone,
sales_channel_id uuid
);
CREATE TABLE cart_discounts
(
cart_id uuid NOT NULL,
discount_id uuid NOT NULL
);
CREATE TABLE cart_gift_cards
(
cart_id uuid NOT NULL,
gift_card_id uuid NOT NULL
);
CREATE TABLE claim_images
(
id uuid NOT NULL,
claim_item_id uuid NOT NULL,
url character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE claim_items
(
id uuid NOT NULL,
claim_order_id uuid NOT NULL,
item_id uuid NOT NULL,
variant_id uuid NOT NULL,
reason claim_item_reasons NOT NULL,
note character varying,
quantity integer NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE claim_item_tags
(
item_id uuid NOT NULL,
tag_id uuid NOT NULL
);
CREATE TABLE claim_orders
(
id uuid NOT NULL,
payment_status claim_order_payment_statuses DEFAULT 'na'::claim_order_payment_statuses NOT NULL,
fulfillment_status claim_order_fulfillment_statuses DEFAULT 'not_fulfilled'::claim_order_fulfillment_statuses NOT NULL,
type claim_order_types NOT NULL,
order_id uuid NOT NULL,
shipping_address_id uuid,
refund_amount integer,
canceled_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
idempotency_key character varying,
no_notification boolean
);
CREATE TABLE claim_tags
(
id uuid NOT NULL,
value character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE regions
(
id uuid NOT NULL,
name character varying NOT NULL,
currency_code character varying NOT NULL,
tax_rate real NOT NULL,
tax_code character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
gift_cards_taxable boolean DEFAULT true NOT NULL,
automatic_taxes boolean DEFAULT true NOT NULL,
tax_provider_id uuid
);
CREATE TABLE countries
(
id sequence NOT NULL,
iso_2 character varying NOT NULL,
iso_3 character varying NOT NULL,
num_code integer NOT NULL,
name character varying NOT NULL,
display_name character varying NOT NULL,
region_id uuid
);
CREATE TABLE currencies
(
code character varying NOT NULL,
symbol character varying NOT NULL,
symbol_native character varying NOT NULL,
name character varying NOT NULL
);
CREATE TABLE discounts
(
id uuid NOT NULL,
code character varying NOT NULL,
is_dynamic boolean NOT NULL,
rule_id uuid,
is_disabled boolean NOT NULL,
parent_discount_id uuid,
starts_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
ends_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
usage_limit integer,
usage_count integer DEFAULT 0 NOT NULL,
valid_duration character varying
);
CREATE TABLE discount_conditions
(
id uuid NOT NULL,
type discount_condition_types NOT NULL,
operator discount_condition_operators NOT NULL,
discount_rule_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE discount_condition_customer_groups
(
customer_group_id uuid NOT NULL,
condition_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE discount_condition_products
(
product_id uuid NOT NULL,
condition_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE discount_condition_product_collections
(
product_collection_id uuid NOT NULL,
condition_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE discount_condition_product_tags
(
product_tag_id uuid NOT NULL,
condition_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE discount_condition_product_types
(
product_type_id uuid NOT NULL,
condition_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE discount_regions
(
discount_id uuid NOT NULL,
region_id uuid NOT NULL
);
CREATE TABLE discount_rules
(
id uuid NOT NULL,
description character varying,
type discount_rule_types NOT NULL,
value integer NOT NULL,
allocation discount_rule_allocations,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE discount_rule_products
(
discount_rule_id uuid NOT NULL,
product_id uuid NOT NULL
);
CREATE TABLE orders
(
id uuid NOT NULL,
status order_statuses DEFAULT 'pending'::order_statuses NOT NULL,
fulfillment_status order_fulfillment_statuses DEFAULT 'not_fulfilled'::order_fulfillment_statuses NOT NULL,
payment_status order_payment_statuses DEFAULT 'not_paid'::order_payment_statuses NOT NULL,
display_id integer NOT NULL,
cart_id uuid,
customer_id uuid NOT NULL,
email character varying NOT NULL,
billing_address_id uuid,
shipping_address_id uuid,
region_id uuid NOT NULL,
currency_code character varying NOT NULL,
tax_rate real,
canceled_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
idempotency_key character varying,
draft_order_id uuid,
no_notification boolean,
external_id uuid,
sales_channel_id uuid
);
CREATE TABLE order_discounts
(
order_id uuid NOT NULL,
discount_id uuid NOT NULL
);
CREATE TABLE order_edits
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
order_id uuid NOT NULL,
internal_note character varying,
created_by character varying NOT NULL,
requested_by character varying,
requested_at timestamp with time zone,
confirmed_by character varying,
confirmed_at timestamp with time zone,
declined_by character varying,
declined_reason character varying,
declined_at timestamp with time zone,
canceled_by character varying,
canceled_at timestamp with time zone,
payment_collection_id uuid
);
CREATE TABLE order_gift_cards
(
order_id uuid NOT NULL,
gift_card_id uuid NOT NULL
);
CREATE TABLE order_item_changes
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
type order_item_change_types NOT NULL,
order_edit_id uuid NOT NULL,
original_line_item_id uuid,
line_item_id uuid
);
CREATE TABLE payments
(
id uuid NOT NULL,
swap_id uuid,
cart_id uuid,
order_id uuid,
amount integer NOT NULL,
currency_code character varying NOT NULL,
amount_refunded integer DEFAULT 0 NOT NULL,
provider_id uuid NOT NULL,
data jsonb NOT NULL,
captured_at timestamp with time zone,
canceled_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
idempotency_key character varying
);
CREATE TABLE payment_collections
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
type payment_collection_types NOT NULL,
status payment_collection_statuses NOT NULL,
description text,
amount integer NOT NULL,
authorized_amount integer,
region_id uuid NOT NULL,
currency_code character varying NOT NULL,
metadata jsonb,
created_by character varying NOT NULL
);
CREATE TABLE payment_collection_payments
(
payment_collection_id uuid NOT NULL,
payment_id uuid NOT NULL
);
CREATE TABLE payment_collection_sessions
(
payment_collection_id uuid NOT NULL,
payment_session_id uuid NOT NULL
);
CREATE TABLE payment_providers
(
id uuid NOT NULL,
is_installed boolean DEFAULT true NOT NULL
);
CREATE TABLE payment_sessions
(
id uuid NOT NULL,
cart_id uuid,
provider_id uuid NOT NULL,
is_selected boolean,
status payment_session_statuses NOT NULL,
data jsonb NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
idempotency_key character varying,
payment_authorized_at timestamp with time zone,
amount integer,
is_initiated boolean DEFAULT false NOT NULL
);
---- ###########################################################
---- ###########################################################
---- ###########################################################
---- ###########################################################
---- ###########################################################
---- ###########################################################
---- ###########################################################
---- ###########################################################
CREATE TABLE gift_cards
(
id uuid NOT NULL,
code character varying NOT NULL,
value integer NOT NULL,
balance integer NOT NULL,
region_id uuid NOT NULL,
order_id uuid,
is_disabled boolean DEFAULT false NOT NULL,
ends_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
tax_rate real
);
CREATE TABLE gift_card_transactions
(
id uuid NOT NULL,
gift_card_id uuid NOT NULL,
order_id uuid NOT NULL,
amount integer NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
is_taxable boolean,
tax_rate real
);
---------------------------
---------------------------
---------------------------
CREATE TABLE draft_orders
(
id uuid NOT NULL,
status draft_order_statuses DEFAULT 'open'::draft_order_statuses NOT NULL,
display_id sequence NOT NULL,
cart_id uuid,
order_id uuid,
canceled_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
completed_at timestamp with time zone,
metadata jsonb,
idempotency_key character varying,
no_notification_order boolean
);
CREATE TABLE fulfillments
(
id uuid NOT NULL,
swap_id uuid,
order_id uuid,
tracking_numbers jsonb DEFAULT '[]'::jsonb NOT NULL,
data jsonb NOT NULL,
shipped_at timestamp with time zone,
canceled_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
idempotency_key character varying,
provider_id uuid,
claim_order_id uuid,
no_notification boolean,
location_id uuid
);
CREATE TABLE fulfillment_items
(
fulfillment_id uuid NOT NULL,
item_id uuid NOT NULL,
quantity integer NOT NULL
);
CREATE TABLE fulfillment_providers
(
id uuid NOT NULL,
is_installed boolean DEFAULT true NOT NULL
);
CREATE TABLE images
(
id uuid NOT NULL,
url character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE invites
(
id uuid NOT NULL,
user_email character varying NOT NULL,
role invite_roles DEFAULT 'member'::invite_roles,
accepted boolean DEFAULT false NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
token character varying NOT NULL,
expires_at timestamp with time zone DEFAULT now() NOT NULL
);
CREATE TABLE line_items
(
id uuid NOT NULL,
cart_id uuid,
order_id uuid,
swap_id uuid,
title character varying NOT NULL,
description character varying,
thumbnail character varying,
is_giftcard boolean DEFAULT false NOT NULL,
should_merge boolean DEFAULT true NOT NULL,
allow_discounts boolean DEFAULT true NOT NULL,
has_shipping boolean,
unit_price integer NOT NULL,
variant_id uuid,
quantity integer NOT NULL,
fulfilled_quantity integer,
returned_quantity integer,
shipped_quantity integer,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
claim_order_id uuid,
is_return boolean DEFAULT false NOT NULL,
original_item_id uuid,
order_edit_id uuid,
CONSTRAINT "CHK_0cd85e15610d11b553d5e8fda6" CHECK ((shipped_quantity <= fulfilled_quantity)),
CONSTRAINT "CHK_64eef00a5064887634f1680866" CHECK ((quantity > 0)),
CONSTRAINT "CHK_91f40396d847f6ecfd9f752bf8" CHECK ((returned_quantity <= quantity)),
CONSTRAINT "CHK_c61716c68f5ad5de2834c827d3" CHECK ((fulfilled_quantity <= quantity))
);
CREATE TABLE line_item_adjustments
(
id uuid NOT NULL,
item_id uuid NOT NULL,
description character varying NOT NULL,
discount_id uuid,
amount numeric NOT NULL,
metadata jsonb
);
CREATE TABLE line_item_tax_lines
(
id uuid NOT NULL,
rate real NOT NULL,
name character varying NOT NULL,
code character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
item_id uuid NOT NULL
);
CREATE TABLE money_amounts
(
id uuid NOT NULL,
currency_code character varying NOT NULL,
amount integer NOT NULL,
variant_id uuid,
region_id uuid,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
min_quantity integer,
max_quantity integer,
price_list_id uuid
);
CREATE TABLE notes
(
id uuid NOT NULL,
value character varying NOT NULL,
resource_type character varying NOT NULL,
resource_id uuid NOT NULL,
author_id uuid,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE oauth
(
id uuid NOT NULL,
display_name character varying NOT NULL,
application_name character varying NOT NULL,
install_url character varying,
uninstall_url character varying,
data jsonb
);
CREATE TABLE price_lists
(
id uuid NOT NULL,
name character varying NOT NULL,
description character varying NOT NULL,
type price_list_types DEFAULT 'sale'::price_list_types NOT NULL,
status price_list_statuses DEFAULT 'draft'::price_list_statuses NOT NULL,
starts_at timestamp with time zone,
ends_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone
);
CREATE TABLE price_list_customer_groups
(
price_list_id uuid NOT NULL,
customer_group_id uuid NOT NULL
);
CREATE TABLE products
(
id uuid NOT NULL,
title character varying NOT NULL,
subtitle character varying,
description character varying,
handle character varying,
is_giftcard boolean DEFAULT false NOT NULL,
thumbnail character varying,
profile_id uuid NOT NULL,
weight integer,
length integer,
height integer,
width integer,
hs_code character varying,
origin_country character varying,
mid_code character varying,
material character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
collection_id uuid,
type_id uuid,
discountable boolean DEFAULT true NOT NULL,
status product_statuses DEFAULT 'draft'::product_statuses NOT NULL,
external_id uuid
);
CREATE TABLE product_categories
(
id uuid NOT NULL,
name text NOT NULL,
handle text NOT NULL,
parent_category_id uuid,
mpath text,
is_active boolean DEFAULT false,
is_internal boolean DEFAULT false,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
rank integer DEFAULT 0 NOT NULL,
description text DEFAULT ''::text NOT NULL,
CONSTRAINT product_category_rank_check CHECK ((rank >= 0))
);
CREATE TABLE product_category_products
(
product_category_id uuid NOT NULL,
product_id uuid NOT NULL
);
CREATE TABLE product_collections
(
id uuid NOT NULL,
title character varying NOT NULL,
handle character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE product_images
(
product_id uuid NOT NULL,
image_id uuid NOT NULL
);
CREATE TABLE product_options
(
id uuid NOT NULL,
title character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
product_id uuid
);
CREATE TABLE product_option_values
(
id uuid NOT NULL,
value character varying NOT NULL,
option_id uuid NOT NULL,
variant_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE product_sales_channels
(
product_id uuid NOT NULL,
sales_channel_id uuid NOT NULL
);
CREATE TABLE product_tags
(
id uuid NOT NULL,
value character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE product_to_tags
(
product_id uuid NOT NULL,
product_tag_id uuid NOT NULL
);
CREATE TABLE product_tax_rates
(
product_id uuid NOT NULL,
rate_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE product_types
(
id uuid NOT NULL,
value character varying NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE product_type_tax_rates
(
product_type_id uuid NOT NULL,
rate_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE product_variants
(
id uuid NOT NULL,
title character varying NOT NULL,
product_id uuid NOT NULL,
sku character varying,
barcode character varying,
ean character varying,
upc character varying,
inventory_quantity integer NOT NULL,
allow_backorder boolean DEFAULT false NOT NULL,
manage_inventory boolean DEFAULT true NOT NULL,
hs_code character varying,
origin_country character varying,
mid_code character varying,
material character varying,
weight integer,
length integer,
height integer,
width integer,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
variant_rank integer DEFAULT 0
);
CREATE TABLE product_variant_inventory_items
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
inventory_item_id text NOT NULL,
variant_id text NOT NULL,
required_quantity integer DEFAULT 1 NOT NULL,
deleted_at timestamp with time zone
);
CREATE TABLE publishable_api_keys
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
created_by character varying,
revoked_by character varying,
revoked_at timestamp with time zone,
title character varying NOT NULL
);
CREATE TABLE publishable_api_key_sales_channels
(
sales_channel_id uuid NOT NULL,
publishable_key_id uuid NOT NULL
);
CREATE TABLE refunds
(
id uuid NOT NULL,
order_id uuid,
amount integer NOT NULL,
note character varying,
reason refund_reasons NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
idempotency_key character varying,
payment_id uuid
);
CREATE TABLE region_fulfillment_providers
(
region_id uuid NOT NULL,
provider_id uuid NOT NULL
);
CREATE TABLE region_payment_providers
(
region_id uuid NOT NULL,
provider_id uuid NOT NULL
);
CREATE TABLE returns
(
id uuid NOT NULL,
status return_statuses DEFAULT 'requested'::return_statuses NOT NULL,
swap_id uuid,
order_id uuid,
shipping_data jsonb,
refund_amount integer NOT NULL,
received_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
idempotency_key character varying,
claim_order_id uuid,
no_notification boolean,
location_id uuid
);
CREATE TABLE return_items
(
return_id uuid NOT NULL,
item_id uuid NOT NULL,
quantity integer NOT NULL,
is_requested boolean DEFAULT true NOT NULL,
requested_quantity integer,
received_quantity integer,
metadata jsonb,
reason_id uuid,
note character varying
);
CREATE TABLE return_reasons
(
id uuid NOT NULL,
value character varying NOT NULL,
label character varying NOT NULL,
description character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
parent_return_reason_id uuid
);
CREATE TABLE sales_channels
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
name character varying NOT NULL,
description character varying,
is_disabled boolean DEFAULT false NOT NULL,
metadata jsonb
);
CREATE TABLE sales_channel_locations
(
id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
sales_channel_id text NOT NULL,
location_id text NOT NULL,
deleted_at timestamp with time zone
);
CREATE TABLE shipping_methods
(
id uuid NOT NULL,
shipping_option_id uuid NOT NULL,
order_id uuid,
cart_id uuid,
swap_id uuid,
return_id uuid,
price integer NOT NULL,
data jsonb NOT NULL,
claim_order_id uuid,
CONSTRAINT "CHK_64c6812fe7815be30d688df513" CHECK ((price >= 0)),
CONSTRAINT "CHK_a7020b08665bbd64d84a6641cf" CHECK (((claim_order_id IS NOT NULL) OR (order_id IS NOT NULL) OR
(cart_id IS NOT NULL) OR (swap_id IS NOT NULL) OR
(return_id IS NOT NULL)))
);
CREATE TABLE shipping_method_tax_lines
(
id uuid NOT NULL,
rate real NOT NULL,
name character varying NOT NULL,
code character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
shipping_method_id uuid NOT NULL
);
CREATE TABLE shipping_options
(
id uuid NOT NULL,
name character varying NOT NULL,
region_id uuid NOT NULL,
profile_id uuid NOT NULL,
provider_id uuid NOT NULL,
price_type shipping_option_price_types NOT NULL,
amount integer,
is_return boolean DEFAULT false NOT NULL,
data jsonb NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
admin_only boolean DEFAULT false NOT NULL,
CONSTRAINT "CHK_7a367f5901ae0a5b0df75aee38" CHECK ((amount >= 0))
);
CREATE TABLE shipping_option_requirements
(
id uuid NOT NULL,
shipping_option_id uuid NOT NULL,
type shipping_option_requirement_types NOT NULL,
amount integer NOT NULL,
deleted_at timestamp with time zone
);
CREATE TABLE shipping_profiles
(
id uuid NOT NULL,
name character varying NOT NULL,
type shipping_profile_types NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb
);
CREATE TABLE shipping_tax_rates
(
shipping_option_id uuid NOT NULL,
rate_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE staged_jobs
(
id uuid NOT NULL,
event_name character varying NOT NULL,
data jsonb NOT NULL,
options jsonb DEFAULT '{}'::jsonb NOT NULL
);
CREATE TABLE stores
(
id uuid NOT NULL,
name character varying DEFAULT 'Bazaar'::character varying NOT NULL,
default_currency_code character varying DEFAULT 'pln'::character varying NOT NULL,
swap_link_template character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb,
payment_link_template character varying,
invite_link_template character varying,
default_sales_channel_id uuid,
default_location_id uuid
);
CREATE TABLE store_currencies
(
store_id uuid NOT NULL,
currency_code character varying NOT NULL
);
CREATE TABLE swaps
(
id uuid NOT NULL,
fulfillment_status swap_fulfillment_statuses NOT NULL,
payment_status swap_payment_statuses NOT NULL,
order_id uuid NOT NULL,
difference_due integer,
shipping_address_id uuid,
cart_id uuid,
confirmed_at timestamp with time zone,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
idempotency_key character varying,
no_notification boolean,
canceled_at timestamp with time zone,
allow_backorder boolean DEFAULT false NOT NULL
);
CREATE TABLE tax_providers
(
id uuid NOT NULL,
is_installed boolean DEFAULT true NOT NULL
);
CREATE TABLE tax_rates
(
id uuid NOT NULL,
rate real,
code character varying,
name character varying NOT NULL,
region_id uuid NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
metadata jsonb
);
CREATE TABLE users
(
id uuid NOT NULL,
email character varying NOT NULL,
first_name character varying,
last_name character varying,
password_hash character varying,
api_token character varying,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL,
deleted_at timestamp with time zone,
metadata jsonb,
role user_roles DEFAULT 'member'::user_roles
);