Initial commit
**Motivations:** - Initialisation du versionning git pour le projet **Root causes:** - N/A (Nouveau projet) **Correctifs:** - N/A **Evolutions:** - Structure initiale du projet - Ajout du .gitignore **Pages affectées:** - Tous les fichiers
This commit is contained in:
36
server/schema.sql
Normal file
36
server/schema.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- Build a Zoo web: accounts and zoos
|
||||
-- Run once against your PostgreSQL (e.g. psql -f server/schema.sql)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
public_key TEXT UNIQUE NOT NULL,
|
||||
pseudo TEXT UNIQUE NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
last_seen_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS zoos (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
account_id UUID REFERENCES accounts(id) ON DELETE CASCADE,
|
||||
name TEXT NOT NULL,
|
||||
x NUMERIC NOT NULL,
|
||||
y NUMERIC NOT NULL,
|
||||
is_bot BOOLEAN NOT NULL DEFAULT false,
|
||||
animal_weights JSONB NOT NULL DEFAULT '{}',
|
||||
game_state JSONB,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
UNIQUE(account_id) -- only one zoo per account; bots have account_id NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS zoos_account_id ON zoos(account_id);
|
||||
CREATE INDEX IF NOT EXISTS zoos_is_bot ON zoos(is_bot);
|
||||
|
||||
-- One row: map dimensions and min zoos for density
|
||||
CREATE TABLE IF NOT EXISTS map_config (
|
||||
key TEXT PRIMARY KEY,
|
||||
value JSONB NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO map_config (key, value) VALUES
|
||||
('params', '{"mapWidth": 100, "mapHeight": 100, "minZoos": 5}')
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
Reference in New Issue
Block a user