PostgreSQL 15+ · Alembic · JSONB
Πίνακες (9)
| Πίνακας | Module | Σκοπός |
| identity_records | MOD-01 | Nullifier + Ed25519 |
| parties | MOD-02 | 8 κόμματα |
| statements | MOD-02 | 15 θέσεις |
| party_positions | MOD-02 | -1/0/1 |
| parliament_bills | MOD-03 | Νομοσχέδια |
| bill_status_logs | MOD-03 | Audit Log |
| citizen_votes | MOD-04 | UNIQUE constraint |
| bill_relevance_votes | MOD-14 | Up/Down |
| survey_responses | MOD-02 | VAA JSONB |
identity_records
nullifier_hash VARCHAR(64) UNIQUE NOT NULL -- SHA256
public_key_hex VARCHAR(128) NOT NULL -- Ed25519
demographic_hash VARCHAR(64) -- SHA256(region+gender+salt)
status ENUM(ACTIVE, REVOKED)
citizen_votes
nullifier_hash VARCHAR(64)
bill_id VARCHAR(50) → parliament_bills
vote ENUM(YES, NO, ABSTAIN, UNKNOWN)
signature_hex VARCHAR(128) -- Ed25519
UNIQUE(nullifier_hash, bill_id) -- prevents double vote
Migrations
cd apps/api
alembic upgrade head # apply all
alembic history # show history