🎉 initial commit
This commit is contained in:
69
devices-api/migrations/001_create_devices.sql
Normal file
69
devices-api/migrations/001_create_devices.sql
Normal file
@@ -0,0 +1,69 @@
|
||||
-- Create extensions
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
|
||||
-- Create devices table
|
||||
CREATE TABLE IF NOT EXISTS devices (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
manufacturer VARCHAR(255) NOT NULL,
|
||||
release_year INTEGER,
|
||||
cpu VARCHAR(255),
|
||||
ram_mb INTEGER,
|
||||
storage_mb INTEGER,
|
||||
display_size VARCHAR(50),
|
||||
battery_hours REAL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create ratings table
|
||||
CREATE TABLE IF NOT EXISTS ratings (
|
||||
id SERIAL PRIMARY KEY,
|
||||
device_id INTEGER NOT NULL REFERENCES devices(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(255) NOT NULL,
|
||||
score INTEGER CHECK (score >= 1 AND score <= 5),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create reviews table
|
||||
CREATE TABLE IF NOT EXISTS reviews (
|
||||
id SERIAL PRIMARY KEY,
|
||||
device_id INTEGER NOT NULL REFERENCES devices(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(255) NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create device_events table for worker logging
|
||||
CREATE TABLE IF NOT EXISTS device_events (
|
||||
id SERIAL PRIMARY KEY,
|
||||
device_id INTEGER,
|
||||
device_name VARCHAR(255),
|
||||
event_type VARCHAR(100),
|
||||
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create rating_events table
|
||||
CREATE TABLE IF NOT EXISTS rating_events (
|
||||
id SERIAL PRIMARY KEY,
|
||||
device_id INTEGER,
|
||||
user_id VARCHAR(255),
|
||||
score INTEGER,
|
||||
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create review_events table
|
||||
CREATE TABLE IF NOT EXISTS review_events (
|
||||
id SERIAL PRIMARY KEY,
|
||||
device_id INTEGER,
|
||||
user_id VARCHAR(255),
|
||||
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create indexes for better performance
|
||||
CREATE INDEX IF NOT EXISTS idx_devices_name ON devices(name);
|
||||
CREATE INDEX IF NOT EXISTS idx_devices_manufacturer ON devices(manufacturer);
|
||||
CREATE INDEX IF NOT EXISTS idx_ratings_device_id ON ratings(device_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_ratings_user_id ON ratings(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_reviews_device_id ON reviews(device_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_reviews_user_id ON reviews(user_id);
|
||||
Reference in New Issue
Block a user