v0.2 - 19 features: comparator, allergies, gamification, shopping list, achievements, stats, profile, share, bottom nav
This commit is contained in:
39
migrate.sql
Normal file
39
migrate.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
-- Migration: Add new columns and tables for Aletheia v0.2
|
||||
-- Safe: uses IF NOT EXISTS / ADD COLUMN IF NOT EXISTS (PostgreSQL 11+)
|
||||
|
||||
-- User profile fields
|
||||
ALTER TABLE users ADD COLUMN IF NOT EXISTS allergies TEXT DEFAULT '[]';
|
||||
ALTER TABLE users ADD COLUMN IF NOT EXISTS health_profile VARCHAR DEFAULT 'normal';
|
||||
|
||||
-- Achievements table
|
||||
CREATE TABLE IF NOT EXISTS achievements (
|
||||
id SERIAL PRIMARY KEY,
|
||||
code VARCHAR UNIQUE NOT NULL,
|
||||
name VARCHAR NOT NULL,
|
||||
description VARCHAR NOT NULL,
|
||||
emoji VARCHAR DEFAULT '🏆',
|
||||
target INTEGER DEFAULT 1
|
||||
);
|
||||
|
||||
-- User achievements
|
||||
CREATE TABLE IF NOT EXISTS user_achievements (
|
||||
id SERIAL PRIMARY KEY,
|
||||
user_id INTEGER REFERENCES users(id) NOT NULL,
|
||||
achievement_id INTEGER REFERENCES achievements(id) NOT NULL,
|
||||
unlocked_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Shopping list
|
||||
CREATE TABLE IF NOT EXISTS shopping_list (
|
||||
id SERIAL PRIMARY KEY,
|
||||
user_id INTEGER REFERENCES users(id) NOT NULL,
|
||||
product_name VARCHAR NOT NULL,
|
||||
barcode VARCHAR,
|
||||
checked BOOLEAN DEFAULT FALSE,
|
||||
added_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_user_achievements_user ON user_achievements(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_shopping_list_user ON shopping_list(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_scans_user_date ON scans(user_id, scanned_at);
|
||||
Reference in New Issue
Block a user