Globinours/migrations/054_configurable_species.sql

37 lines
1.6 KiB
SQL

CREATE TABLE IF NOT EXISTS ref_species (
id INTEGER PRIMARY KEY AUTOINCREMENT,
code TEXT NOT NULL UNIQUE COLLATE NOCASE,
name TEXT NOT NULL,
category TEXT NOT NULL DEFAULT 'autre',
icon TEXT NOT NULL DEFAULT '🐾',
color TEXT NOT NULL DEFAULT '#6c757d',
active INTEGER NOT NULL DEFAULT 1 CHECK(active IN (0,1)),
sort_order INTEGER NOT NULL DEFAULT 100,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX IF NOT EXISTS idx_ref_species_active_order
ON ref_species(active, sort_order, name);
INSERT OR IGNORE INTO ref_species(code,name,category,icon,color,sort_order) VALUES
('chat','Chat','animaux_compagnie','🐱','#6f8fb3',10),
('chien','Chien','animaux_compagnie','🐶','#b7791f',20),
('lapin','Lapin','nac','🐰','#8b6f47',30),
('furet','Furet','nac','🦦','#7c6651',40),
('cobaye','Cochon d''Inde','nac','🐹','#a06c46',50),
('oiseau','Oiseau','nac','🐦','#3b82a0',60),
('reptile','Reptile','nac','🦎','#56875a',70),
('animal-ferme','Animal de ferme','animal_ferme','🐐','#9a6b3f',80),
('faune-sauvage','Faune sauvage','faune_sauvage','🦅','#496b45',90),
('autre','Autre espèce','autre','🐾','#6c757d',100);
INSERT OR IGNORE INTO ref_species(code,name,category,icon,color,sort_order)
SELECT lower(trim(species)),
CASE WHEN trim(species)='' THEN 'Espèce inconnue' ELSE upper(substr(trim(species),1,1))||substr(trim(species),2) END,
'autre','🐾','#6c757d',95
FROM animals
WHERE trim(COALESCE(species,''))<>'';
UPDATE animals SET species='chat' WHERE lower(trim(species))='cat';
UPDATE animals SET species='chien' WHERE lower(trim(species))='dog';