-- SQLEnv E-Commerce Database Schema -- Designed for text-to-SQL agent training with 3 difficulty levels CREATE TABLE IF NOT EXISTS customers ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE, age INTEGER NOT NULL, city TEXT NOT NULL, signup_date TEXT NOT NULL -- ISO format: YYYY-MM-DD ); CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, category TEXT NOT NULL, -- Electronics, Clothing, Books, Home price REAL NOT NULL, stock INTEGER NOT NULL DEFAULT 0 ); CREATE TABLE IF NOT EXISTS orders ( id INTEGER PRIMARY KEY, customer_id INTEGER NOT NULL, order_date TEXT NOT NULL, -- ISO format: YYYY-MM-DD status TEXT NOT NULL, -- pending, shipped, delivered, cancelled total_amount REAL NOT NULL, FOREIGN KEY (customer_id) REFERENCES customers(id) ); CREATE TABLE IF NOT EXISTS order_items ( id INTEGER PRIMARY KEY, order_id INTEGER NOT NULL, product_id INTEGER NOT NULL, quantity INTEGER NOT NULL, unit_price REAL NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (product_id) REFERENCES products(id) ); CREATE TABLE IF NOT EXISTS reviews ( id INTEGER PRIMARY KEY, product_id INTEGER NOT NULL, customer_id INTEGER NOT NULL, rating INTEGER NOT NULL CHECK (rating >= 1 AND rating <= 5), review_text TEXT NOT NULL, review_date TEXT NOT NULL, -- ISO format: YYYY-MM-DD FOREIGN KEY (product_id) REFERENCES products(id), FOREIGN KEY (customer_id) REFERENCES customers(id) );