37 lines
1.6 KiB
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';
|