-- Create items table (compatible with both PostgreSQL and SQLite) CREATE TABLE IF NOT EXISTS items ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, label_id TEXT UNIQUE NOT NULL, model_number TEXT, remarks TEXT, purchase_year INTEGER, purchase_amount REAL, durability_years INTEGER, is_depreciation_target BOOLEAN DEFAULT FALSE, connection_names TEXT, -- JSON array for both DBs cable_color_pattern TEXT, -- JSON array for both DBs storage_locations TEXT, -- JSON array for both DBs is_on_loan BOOLEAN DEFAULT FALSE, qr_code_type TEXT CHECK (qr_code_type IN ('qr', 'barcode', 'none')), is_disposed BOOLEAN DEFAULT FALSE, image_url TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Create indexes CREATE INDEX IF NOT EXISTS idx_items_label_id ON items(label_id); CREATE INDEX IF NOT EXISTS idx_items_name ON items(name); CREATE INDEX IF NOT EXISTS idx_items_is_on_loan ON items(is_on_loan); CREATE INDEX IF NOT EXISTS idx_items_is_disposed ON items(is_disposed);