New order rows table (#238)
Co-authored-by: Niklas Fondberg <niklas.fondberg@photowall.se> Co-authored-by: Rikard Bartholf <rikard@bartholf.nu>
This commit is contained in:
co-authored by
Niklas Fondberg
Rikard Bartholf
parent
cbffaaeee7
commit
8ef219452f
@@ -0,0 +1,77 @@
|
||||
-- Create new order rows table
|
||||
|
||||
|
||||
|
||||
CREATE TYPE order_row_status AS ENUM (
|
||||
'no_status',
|
||||
'process',
|
||||
'error',
|
||||
'print',
|
||||
'packed',
|
||||
'cancelled',
|
||||
'sent'
|
||||
);
|
||||
|
||||
CREATE TYPE order_row_type AS ENUM (
|
||||
'discount',
|
||||
'fee',
|
||||
'print',
|
||||
'stock',
|
||||
'sample',
|
||||
'refund'
|
||||
);
|
||||
|
||||
-- TODO: new-order: how to deal with inquiries???
|
||||
CREATE TYPE order_row_sub_type AS ENUM (
|
||||
'no_subtype',
|
||||
'wallpaper',
|
||||
'canvas',
|
||||
'poster',
|
||||
'framed_print',
|
||||
'inquiry_wallpaper',
|
||||
'inquiry_canvas',
|
||||
'inquiry_poster',
|
||||
'inquiry_framed_print',
|
||||
'retouch_fee',
|
||||
'contract_customer_discount',
|
||||
'discount_code',
|
||||
'wallpaper_kit',
|
||||
'canvas_frame',
|
||||
'sample',
|
||||
'admin_product'
|
||||
);
|
||||
|
||||
-- Start sequence at 1 million for orders id table
|
||||
ALTER SEQUENCE orders_id_seq RESTART WITH 1000000;
|
||||
|
||||
CREATE TABLE order_rows (
|
||||
id int GENERATED ALWAYS AS IDENTITY (START WITH 2500000) PRIMARY KEY,
|
||||
type order_row_type NOT NULL,
|
||||
sub_type order_row_sub_type NOT NULL,
|
||||
status order_row_status DEFAULT 'no_status',
|
||||
order_id int REFERENCES orders (id),
|
||||
designer_id int REFERENCES designers (designerid),
|
||||
inserted timestamp with time zone DEFAULT now(),
|
||||
updated timestamp with time zone,
|
||||
price numeric NOT NULL,
|
||||
commission_amount numeric DEFAULT 0.0,
|
||||
data JSONB
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN order_rows.price IS 'Price without VAT';
|
||||
|
||||
CREATE TRIGGER updated_timestamp BEFORE UPDATE ON public.order_rows FOR EACH ROW EXECUTE PROCEDURE public.updated_timestamp();
|
||||
|
||||
CREATE INDEX ON order_rows(order_id);
|
||||
CREATE INDEX ON order_rows(designer_id);
|
||||
CREATE INDEX ON order_rows(status);
|
||||
CREATE INDEX ON order_rows(type);
|
||||
CREATE INDEX ON order_rows(sub_type);
|
||||
|
||||
CREATE INDEX ON order_rows((data->>'inquiryid'));
|
||||
CREATE INDEX ON order_rows((data->>'code'));
|
||||
CREATE INDEX ON order_rows((data->>'artNo'));
|
||||
CREATE INDEX ON order_rows((data->>'group'));
|
||||
|
||||
-- added column order_row_id to samples
|
||||
ALTER TABLE samples ADD column IF NOT EXISTS order_row_id int REFERENCES order_rows (id);
|
||||
Reference in New Issue
Block a user