CREATE TABLE dsolovianov.users ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT, email VARCHAR(100), country VARCHAR(100), is_active BOOLEAN, created_at TIMESTAMPTZ NOT NULL ); CREATE TABLE dsolovianov.products ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, category VARCHAR(50), price DECIMAL(10,2) NOT NULL, in_stock BOOLEAN ); CREATE TABLE dsolovianov.orders ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, user_id INT, order_date TIMESTAMPTZ NOT NULL, status VARCHAR(20) ); CREATE TABLE dsolovianov.order_items ( order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL CHECK (quantity > 0), price_at_purchase DECIMAL(10,2) NOT NULL CHECK (price_at_purchase > 0), CONSTRAINT order_items_pk PRIMARY KEY (order_id, product_id) CONSTRAINT order_items_order_fk FOREIGN KEY (order_id) REFERENCES dsolovianov.orders(id), CONSTRAINT order_items_product_fk FOREIGN KEY (product_id) REFERENCES dsolovianov.products(id), CONSTRAINT orders_user_fk FOREIGN KEY (user_id) REFERENCES dsolovianov.users(id) );