initial: split from gov-agreg — vreau.digital standalone platform
Moved from gov-agreg/src/pages/achizitii/* to root (drop prefix). - 22 pages migrated, 127 files total - All internal links: /achizitii/X → /X (176 occurrences fixed) - AchizitiiLayout subnav rewritten: /X paths, top-right link to vreaudigital.ro hub - BaseLayout new (vreau.digital branding, OG tags, site URL) - astro.config.mjs: site https://vreau.digital, server output (was static) - docker-compose: port 5096 (vreaudigital is 5095), container vreau-digital - deploy.sh: paths /opt/vreau-digital, log /var/log/vreau-digital-deploy.log Backend shared with gov-agreg: - PostgreSQL satra (same schemas: seap, firms, anaf, anre, ...) - Photon, Martin tiles - Infisical /vreaudigital path (DATABASE_URL etc. shared) build: PASS (npx astro check 0 errors, npm run build 5s vite + 10s server)
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
-- Platform tables for submissions + voting
|
||||
BEGIN;
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS platform;
|
||||
|
||||
-- Ideas/submissions — anyone can propose
|
||||
CREATE TABLE platform.ideas (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
problem TEXT NOT NULL, -- "Ce te deranjează?"
|
||||
solution TEXT, -- "Cum ar trebui să fie?"
|
||||
category TEXT DEFAULT 'general', -- transparenta, cereri, ai, educatie, sanatate, etc
|
||||
author_name TEXT, -- optional
|
||||
author_email TEXT, -- optional, for follow-up
|
||||
author_city TEXT, -- optional
|
||||
status TEXT DEFAULT 'nou', -- nou, în discuție, în lucru, mvp, live, respins
|
||||
votes INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_ideas_votes ON platform.ideas(votes DESC);
|
||||
CREATE INDEX idx_ideas_status ON platform.ideas(status);
|
||||
CREATE INDEX idx_ideas_created ON platform.ideas(created_at DESC);
|
||||
CREATE INDEX idx_ideas_category ON platform.ideas(category);
|
||||
|
||||
-- Votes — fingerprint-based (no accounts)
|
||||
CREATE TABLE platform.votes (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
idea_id BIGINT REFERENCES platform.ideas(id) ON DELETE CASCADE,
|
||||
fingerprint TEXT NOT NULL, -- hash of IP + user-agent
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
UNIQUE(idea_id, fingerprint)
|
||||
);
|
||||
|
||||
-- Comments on ideas — simple, no accounts
|
||||
CREATE TABLE platform.comments (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
idea_id BIGINT REFERENCES platform.ideas(id) ON DELETE CASCADE,
|
||||
author_name TEXT DEFAULT 'Anonim',
|
||||
content TEXT NOT NULL,
|
||||
created_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_comments_idea ON platform.comments(idea_id, created_at);
|
||||
|
||||
-- Seed some initial ideas to get things started
|
||||
INSERT INTO platform.ideas (title, problem, solution, category, author_name, status, votes) VALUES
|
||||
(
|
||||
'Verificare status dosar la orice instituție',
|
||||
'Trebuie să mergi fizic sau să suni repetat ca să afli ce se întâmplă cu dosarul tău. Fiecare instituție are alt sistem, unele nu au deloc.',
|
||||
'O platformă unificată unde introduci numărul de dosar și vezi statusul instant, indiferent de instituție.',
|
||||
'cereri', 'Comunitate', 'nou', 42
|
||||
),
|
||||
(
|
||||
'Extras Carte Funciară online, instant',
|
||||
'Durează 3-5 zile și necesită deplasare la OCPI. În 2026, un document public ar trebui disponibil online.',
|
||||
'Introduci număr cadastral → primești PDF cu extrasul CF. Fără deplasare, fără așteptare.',
|
||||
'cereri', 'Comunitate', 'nou', 38
|
||||
),
|
||||
(
|
||||
'Certificat fiscal în 30 de secunde',
|
||||
'Stai la coadă la primărie, plătești timbru, aștepți 1-3 zile. De 3 ori pe an minim, dacă ai firmă.',
|
||||
'CNP sau CUI → certificat fiscal digital, semnat electronic, valid legal.',
|
||||
'cereri', 'Comunitate', 'nou', 35
|
||||
),
|
||||
(
|
||||
'Programare buletin/pașaport care chiar funcționează',
|
||||
'Sistemul MAI e permanent supraîncărcat, cade, nu găsești slot-uri. Ajungi la 4 dimineața la coadă.',
|
||||
'Calendar cu disponibilitate reală, notificare când se eliberează slot, programare în 3 click-uri.',
|
||||
'cereri', 'Comunitate', 'nou', 50
|
||||
),
|
||||
(
|
||||
'Calculator taxe și impozite locale',
|
||||
'Nu știi cât datorezi, trebuie să mergi la primărie să afli. Fiecare primărie calculează diferit.',
|
||||
'Introdu adresa sau nr. cadastral → vezi toate taxele datorate, cu deadline-uri și posibilitate de plată.',
|
||||
'transparenta', 'Comunitate', 'nou', 30
|
||||
),
|
||||
(
|
||||
'Monitor licitații publice cu alerte',
|
||||
'Informația e dispersată, greu de urmărit. Firmele mici pierd oportunități pentru că nu știu de ele.',
|
||||
'Feed cu licitații filtrat pe domeniu/județ/valoare. Alerte pe email când apare ceva relevant.',
|
||||
'transparenta', 'Comunitate', 'în lucru', 25
|
||||
),
|
||||
(
|
||||
'Profil digital per primărie',
|
||||
'Nu existe un loc centralizat unde să vezi cum performează primăria ta: buget, licitații, servicii digitale.',
|
||||
'Pagina per primărie cu: buget, top cheltuieli, licitații, nivel digitalizare, comparație cu altele.',
|
||||
'transparenta', 'Comunitate', 'în lucru', 22
|
||||
),
|
||||
(
|
||||
'Generator cereri și petiții cu AI',
|
||||
'Oamenii nu știu cum să formuleze o cerere oficială. Limbajul birocratic intimidează.',
|
||||
'Descrii în cuvintele tale ce vrei → AI generează cererea completă, cu referințe legale corecte.',
|
||||
'ai', 'Comunitate', 'nou', 28
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user