39 lines
1.1 KiB
PL/PgSQL
39 lines
1.1 KiB
PL/PgSQL
-- Templates table for storing import templates
|
|
CREATE TABLE IF NOT EXISTS templates (
|
|
id SERIAL PRIMARY KEY,
|
|
company TEXT NOT NULL,
|
|
product_type TEXT NOT NULL,
|
|
supplier TEXT,
|
|
msrp DECIMAL(10,2),
|
|
cost_each DECIMAL(10,2),
|
|
qty_per_unit INTEGER,
|
|
case_qty INTEGER,
|
|
hts_code TEXT,
|
|
description TEXT,
|
|
weight DECIMAL(10,2),
|
|
length DECIMAL(10,2),
|
|
width DECIMAL(10,2),
|
|
height DECIMAL(10,2),
|
|
tax_cat TEXT,
|
|
size_cat TEXT,
|
|
categories TEXT[],
|
|
ship_restrictions TEXT[],
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(company, product_type)
|
|
);
|
|
|
|
-- Function to update the updated_at timestamp
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = CURRENT_TIMESTAMP;
|
|
RETURN NEW;
|
|
END;
|
|
$$ language 'plpgsql';
|
|
|
|
-- Trigger to automatically update the updated_at column
|
|
CREATE TRIGGER update_templates_updated_at
|
|
BEFORE UPDATE ON templates
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_updated_at_column(); |