27 lines
789 B
SQL
27 lines
789 B
SQL
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'product_unit') THEN
|
|
CREATE TYPE product_unit AS ENUM ('pcs', 'kg', 'm', 'm2', 'm3', 'bag', 'pack');
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
CREATE TABLE IF NOT EXISTS products (
|
|
id UUID PRIMARY KEY,
|
|
sku TEXT NOT NULL UNIQUE,
|
|
name TEXT NOT NULL,
|
|
description TEXT NOT NULL DEFAULT '',
|
|
category_id UUID NOT NULL REFERENCES categories(id),
|
|
brand_id UUID NULL REFERENCES brands(id),
|
|
unit product_unit NOT NULL,
|
|
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
DROP TRIGGER IF EXISTS trg_products_updated_at ON products;
|
|
CREATE TRIGGER trg_products_updated_at
|
|
BEFORE UPDATE ON products
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION set_updated_at();
|