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,74 @@
|
||||
-- 021_regas_ajutoare.sql
|
||||
-- RegAS — Registrul Ajutoarelor de Stat (Consiliul Concurenței).
|
||||
-- Source: https://regas.consiliulconcurentei.ro/transparenta/index.html
|
||||
-- API: POST /apitransparenta/cautareTransparenta (XSRF-TOKEN cookie + header)
|
||||
-- Volume at first scrape (2026-05-09): 132,363 ajutoare individuale.
|
||||
--
|
||||
-- Each row = one ajutor de stat acordat unei firme (denumireBeneficiar+cui),
|
||||
-- cu masura (referintaMasura SA.xxx/yyyy), categorie/subcategorie, suma în RON,
|
||||
-- finantator (ministerul/agentia care a dat banii), instrumentAcordare
|
||||
-- (fonduri nerambursabile / credite / garantii / scutiri).
|
||||
--
|
||||
-- Cheie naturală: (cui, idMasura, dataAcordare, ajutorAcordatSubcategorie) —
|
||||
-- același beneficiar poate primi multiple tranșe pe aceeași măsură. Folosim
|
||||
-- un id sintetic SHA1 pentru ON CONFLICT idempotent.
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS regas;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS regas.ajutoare (
|
||||
id char(40) PRIMARY KEY, -- sha1(cui|idMasura|dataAcordare|subcategorie|sumaSubcategorie)
|
||||
cui text NOT NULL,
|
||||
denumire_beneficiar text NOT NULL,
|
||||
raf text, -- "Registrul Ajutoarelor Fiscale" id (rare)
|
||||
alt_cod text, -- ID alternativ (rare)
|
||||
dimensiune_intreprindere text, -- "întreprindere mare" / "IMM" / etc.
|
||||
regiune text[], -- ["Regiunea I Nord-Est", ...] sau ["Toate regiunile"]
|
||||
domeniu_activitate text, -- CAEN cod (4 digits)
|
||||
data_acordare date, -- "DD/MM/YYYY" parsed
|
||||
id_masura integer NOT NULL, -- FK logic la /apitransparenta/downloadPdfMasura/{idMasura}
|
||||
denumire_masura text NOT NULL,
|
||||
referinta_masura text, -- "SA.104966/2022"
|
||||
activitati_finantate text[], -- CAEN codes
|
||||
categorie text,
|
||||
subcategorie text,
|
||||
obiectiv text,
|
||||
ajutor_acordat_categorie numeric(20,2), -- RON
|
||||
ajutor_acordat_subcategorie numeric(20,2), -- RON (de obicei = categorie pentru o singură subcategorie)
|
||||
intermediari_financiari text[],
|
||||
executanti text[],
|
||||
instrument_acordare text, -- "fonduri nerambursabile" / "garantii" / "credite"
|
||||
intensitate numeric(6,2), -- procent (e.g. 65.00)
|
||||
finantator text, -- "Ministerul ... (MIPE)"
|
||||
pdf_masura text, -- "1195_MASURA.pdf"
|
||||
fetched_at timestamptz DEFAULT now(),
|
||||
raw_json jsonb
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_regas_ajutoare_cui ON regas.ajutoare(cui);
|
||||
CREATE INDEX IF NOT EXISTS idx_regas_ajutoare_data ON regas.ajutoare(data_acordare DESC NULLS LAST);
|
||||
CREATE INDEX IF NOT EXISTS idx_regas_ajutoare_finantator ON regas.ajutoare(finantator);
|
||||
CREATE INDEX IF NOT EXISTS idx_regas_ajutoare_referinta ON regas.ajutoare(referinta_masura);
|
||||
CREATE INDEX IF NOT EXISTS idx_regas_ajutoare_id_masura ON regas.ajutoare(id_masura);
|
||||
|
||||
COMMENT ON TABLE regas.ajutoare IS
|
||||
'State aid records from Consiliul Concurentei RegAS portal. One row per ajutor acordat. Source: https://regas.consiliulconcurentei.ro/transparenta/';
|
||||
|
||||
COMMENT ON COLUMN regas.ajutoare.id IS
|
||||
'Synthetic sha1 of (cui|idMasura|dataAcordare|subcategorie|ajutorAcordatSubcategorie). Used for idempotent upsert.';
|
||||
|
||||
-- Materialized view aggregating per CUI for fast firma profile lookup.
|
||||
CREATE MATERIALIZED VIEW IF NOT EXISTS regas.mv_ajutoare_per_cui AS
|
||||
SELECT
|
||||
cui,
|
||||
COUNT(*) AS nr_ajutoare,
|
||||
SUM(ajutor_acordat_subcategorie) AS total_ron,
|
||||
COUNT(DISTINCT id_masura) AS nr_masuri,
|
||||
COUNT(DISTINCT finantator) AS nr_finantatori,
|
||||
MIN(data_acordare) AS prima_acordare,
|
||||
MAX(data_acordare) AS ultima_acordare,
|
||||
array_agg(DISTINCT finantator) FILTER (WHERE finantator IS NOT NULL) AS finantatori,
|
||||
array_agg(DISTINCT instrument_acordare) FILTER (WHERE instrument_acordare IS NOT NULL) AS instrumente
|
||||
FROM regas.ajutoare
|
||||
GROUP BY cui;
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_regas_mv_cui ON regas.mv_ajutoare_per_cui(cui);
|
||||
Reference in New Issue
Block a user