forked from yvv/decision
L'ordre des articles de chaque section (cran 2) et le titre du document (cran 4) deviennent des modules : des unités à part, dont les versions sont des propositions votées comme les articles (dépliées, panier, chaîne). - moteur : ld-engine/src/order.rs (qui est dans l'ordre, ordre proposé, complété à la fin quand un article entre ou sort, places redistribuées, nouvel article en fin de section) ; pending : un ordre de moins de deux articles n'est jamais à voter ; - données : migration 0007 (units.kind, module_amendments) ; le seed déclare ses modules ; module_amend.rs les ajoute une fois, gardé et journalisé, aux documents nés sans eux, sans toucher articles ni votes ; - serveur : modules.rs, order.rs, doc_title.rs (portes pour proposer, entrée en vigueur : les articles changent de place, le document change de titre, en et es passent « à revoir ») ; publication des modules ; - reste mineur : la médiane compte les statuts open, in_force, applied, et eux seuls. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
1.4 KiB
SQL
27 lines
1.4 KiB
SQL
-- Modules (2026-10-31, ADR 0009): the title of a document and the order of the
|
|
-- articles of each of its sections, voted like its articles. Additive only:
|
|
-- every unit of before is an article, nothing else changes.
|
|
--
|
|
-- A module is a unit of its own kind. Its versions are proposals, voted,
|
|
-- counted, signed on the chain and brought into force like those of an
|
|
-- article; their kind says what they hold:
|
|
-- title — `title` is the title of the document in its source language;
|
|
-- order — `body` is the order of the section, one article (unit id) per line.
|
|
|
|
ALTER TABLE units ADD COLUMN kind TEXT NOT NULL DEFAULT 'article'; -- article | title | order
|
|
|
|
-- The modules added to an existing document (src/module_amend.rs): decided
|
|
-- once per document, from what it holds then (its title, the order of each
|
|
-- section), never touching an article or a vote. Each decision is kept here:
|
|
-- applied (and what was created), refused (and why), or present (the document
|
|
-- was born with its modules).
|
|
CREATE TABLE module_amendments (
|
|
amendment_id TEXT NOT NULL,
|
|
doc_id TEXT NOT NULL REFERENCES documents(id),
|
|
outcome TEXT NOT NULL, -- applied | refused | present
|
|
reason TEXT, -- why it was refused
|
|
created TEXT, -- JSON array of the codes of the modules created
|
|
at TEXT NOT NULL,
|
|
PRIMARY KEY (amendment_id, doc_id)
|
|
);
|