PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); $pdo->exec("PRAGMA journal_mode=WAL; PRAGMA foreign_keys=ON;"); $pdo->exec(" CREATE TABLE IF NOT EXISTS categories ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT DEFAULT '', price REAL DEFAULT 0, shipping REAL DEFAULT 0, sku TEXT DEFAULT '', category_id INTEGER REFERENCES categories(id) ON DELETE SET NULL, status TEXT DEFAULT 'brouillon' CHECK(status IN ('brouillon','prêt','publié')), etsy_listing_id TEXT DEFAULT '', tags TEXT DEFAULT '', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS product_media ( id INTEGER PRIMARY KEY AUTOINCREMENT, product_id INTEGER NOT NULL REFERENCES products(id) ON DELETE CASCADE, type TEXT DEFAULT 'image' CHECK(type IN ('image','video')), filename TEXT, original_name TEXT, video_url TEXT, sort_order INTEGER DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS settings ( key TEXT PRIMARY KEY, value TEXT DEFAULT '' ); ");