mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
merge all migrations into schema.sql
This commit is contained in:
@@ -62,10 +62,12 @@ CREATE TABLE IF NOT EXISTS ap_programs (
|
||||
|
||||
-- Insert predefined AP programs
|
||||
INSERT OR IGNORE INTO ap_programs (name, code) VALUES
|
||||
('Narration Spéculative', NULL),
|
||||
('Narration Spéculative', 'NS'),
|
||||
('Design et Politique du Multiple', 'DPM'),
|
||||
('Atelier Pratiques Situées', 'APS'),
|
||||
('Lieux, Interdisciplinarités, Écologie, Nécessité, Systèmes', 'LIENS');
|
||||
('Lieux, Interdisciplinarités, Écologie, Nécessité, Systèmes', 'LIENS'),
|
||||
('Récits et expérimentation', 'RE'),
|
||||
('PACS', 'PACS');
|
||||
|
||||
-- Master finality types
|
||||
CREATE TABLE IF NOT EXISTS finality_types (
|
||||
@@ -322,6 +324,24 @@ INSERT OR IGNORE INTO pages (slug, title, content) VALUES
|
||||
('about', 'À propos', 'Contenu à venir'),
|
||||
('licenses', 'Licences', 'Contenu à venir');
|
||||
|
||||
-- ============================================================================
|
||||
-- SHARE LINKS
|
||||
-- ============================================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS share_links (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
slug TEXT NOT NULL UNIQUE, -- Format: YYYYMMDD-<random>, e.g. 20260416-a3f9k2
|
||||
password_hash TEXT, -- bcrypt hash; NULL = no password required
|
||||
is_active INTEGER NOT NULL DEFAULT 1, -- 1 = active, 0 = disabled
|
||||
usage_count INTEGER NOT NULL DEFAULT 0, -- Number of successful submissions via this link
|
||||
created_by INTEGER NOT NULL, -- admin user ID
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
expires_at DATETIME -- NULL = never expires
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_share_links_slug ON share_links(slug);
|
||||
CREATE INDEX IF NOT EXISTS idx_share_links_active ON share_links(is_active);
|
||||
|
||||
-- ============================================================================
|
||||
-- SMTP SETTINGS
|
||||
-- ============================================================================
|
||||
@@ -357,48 +377,41 @@ CREATE TABLE IF NOT EXISTS apropos_contents (
|
||||
|
||||
INSERT OR IGNORE INTO apropos_contents (key, value) VALUES
|
||||
('contacts', '[
|
||||
{"role":"Bibliothèque d'architecture, d'ingénierie architecturale, d'urbanisme (BAIU) :", "entries":[
|
||||
{"text":"Laurent Leprince", "email":"laurent.leprince@uclouvain.be"}
|
||||
]},
|
||||
{"role":"Responsable des mémoires de l'ERG :", "entries":[
|
||||
{"text":"Xavier Gorgol", "email":"xavier.gorgol@erg.be"}
|
||||
]},
|
||||
{"role":"Cours de suivi de mémoire :", "entries":[
|
||||
{"text":"Brigitte Ledune", "email":"brigitte.ledune@erg.be"}
|
||||
]}
|
||||
{
|
||||
"role": "Bibliothèque d''architecture, d''ingénierie architecturale, d''urbanisme (BAIU) :",
|
||||
"entries": [
|
||||
{"text": "Laurent Leprince", "url": "", "email": "laurent.leprince@uclouvain.be"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "Responsable des mémoires de l''ERG :",
|
||||
"entries": [
|
||||
{"text": "Xavier Gorgol", "url": "", "email": "xavier.gorgol@erg.be"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "Cours de suivi de mémoire :",
|
||||
"entries": [
|
||||
{"text": "Brigitte Ledune", "url": "", "email": "brigitte.ledune@erg.be"}
|
||||
]
|
||||
}
|
||||
]'),
|
||||
('credits', '[
|
||||
{"label":"Design & développement", "entries":[
|
||||
{"text":"Olivia Marly"},
|
||||
{"text":"Théophile Gerveau-Mercie"},
|
||||
{"text":"Théo Hennequin"}
|
||||
]},
|
||||
{"label":"Typographies", "entries":[
|
||||
{"text":"Ductus (Amélie Dumont)"},
|
||||
{"text":"BBB DM Sans"}
|
||||
]}
|
||||
]');INSERT OR IGNORE INTO apropos_contents (key, value) VALUES
|
||||
('contacts', '[
|
||||
{"role":"Bibliothèque d\u0027architecture, d\u0027ingénierie architecturale, d\u0027urbanisme (BAIU) :", "entries":[
|
||||
{"text":"Laurent Leprince", "email":"laurent.leprince@uclouvain.be"}
|
||||
]},
|
||||
{"role":"Responsable des mémoires de l\u0027ERG :", "entries":[
|
||||
{"text":"Xavier Gorgol", "email":"xavier.gorgol@erg.be"}
|
||||
]},
|
||||
{"role":"Cours de suivi de mémoire :", "entries":[
|
||||
{"text":"Brigitte Ledune", "email":"brigitte.ledune@erg.be"}
|
||||
]}
|
||||
]'),
|
||||
('credits', '[
|
||||
{"label":"Design & développement", "entries":[
|
||||
{"text":"Olivia Marly"},
|
||||
{"text":"Théophile Gerveau-Mercie"},
|
||||
{"text":"Théo Hennequin"}
|
||||
]},
|
||||
{"label":"Typographies", "entries":[
|
||||
{"text":"Ductus (Amélie Dumont)"},
|
||||
{"text":"BBB DM Sans"}
|
||||
]}
|
||||
('credits', '[
|
||||
{
|
||||
"label": "Design & développement",
|
||||
"entries": [
|
||||
{"text": "Olivia Marly", "url": ""},
|
||||
{"text": "Théophile Gerveau-Mercie", "url": ""},
|
||||
{"text": "Théo Hennequin", "url": ""}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Typographies",
|
||||
"entries": [
|
||||
{"text": "Ductus (Amélie Dumont)", "url": ""},
|
||||
{"text": "BBB DM Sans", "url": ""}
|
||||
]
|
||||
}
|
||||
]');
|
||||
|
||||
-- ============================================================================
|
||||
@@ -444,7 +457,7 @@ CREATE TRIGGER IF NOT EXISTS update_pages_timestamp
|
||||
AFTER UPDATE ON pages
|
||||
BEGIN
|
||||
UPDATE pages SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
|
||||
END
|
||||
END;
|
||||
|
||||
CREATE TRIGGER IF NOT EXISTS update_apropos_contents_timestamp
|
||||
AFTER UPDATE ON apropos_contents
|
||||
|
||||
Reference in New Issue
Block a user