#!/bin/bash # Import financial indicators (Situații financiare) from data.gov.ro per year. # Runs COPY from web_uu_YYYY.txt → staging_financials → firms.financials (PK cui+year). set -euo pipefail DATA_DIR=/opt/vreaudigital/data/mfinante LOG=/var/log/vreaudigital-fin-import.log log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG"; } source /opt/vreaudigital/.infisical-mi TOKEN=$(infisical login --method=universal-auth --domain="$INFISICAL_API_URL" --client-id="$INFISICAL_CLIENT_ID" --client-secret="$INFISICAL_CLIENT_SECRET" --silent --plain) DATABASE_URL=$(infisical run --domain="$INFISICAL_API_URL" --projectId="$INFISICAL_PROJECT_ID" --env="$INFISICAL_ENV" --path="$INFISICAL_PATH" --silent --token="$TOKEN" -- sh -c 'echo "$DATABASE_URL"') DB=$(echo "$DATABASE_URL" | sed -E 's/[?&]schema=[^&]*//; s/\?$//') export PGUSER=$(echo "$DB" | sed -E 's|^postgresql://([^:]+):.*|\1|') export PGPASSWORD=$(echo "$DB" | sed -E 's|^postgresql://[^:]+:([^@]+)@.*|\1|') export PGHOST=$(echo "$DB" | sed -E 's|^postgresql://[^@]+@([^:/]+).*|\1|') export PGDATABASE=$(echo "$DB" | sed -E 's|^postgresql://[^@]+@[^/]+/([^?]+).*|\1|') unset DATABASE_URL TOKEN DB log "=== Financial import started ===" # WEB_UU and WEB_BL_BS_SL share the same 22-column schema (CUI, CAEN, I1..I20) # so we can use the same staging table + INSERT for both. The `source` column # tracks which raw category the row came from. WEB_BL_BS_SL covers special- # regime entities (bilanț scurt, lichidare) that aren't in WEB_UU — e.g. # Alliance Healthcare, in-liquidation companies. Together they fill most of # the financial-data gap. import_year_category() { local YEAR="$1" local CATEGORY="$2" # WEB_UU | WEB_BL_BS_SL local FILE="$3" local SRC_LABEL="mfinante:${CATEGORY}" if [ ! -s "$FILE" ]; then log "[$YEAR/$CATEGORY] [SKIP] $FILE missing" return 0 fi log "[$YEAR/$CATEGORY] Truncating staging..." psql -v ON_ERROR_STOP=1 -c "TRUNCATE TABLE firms.staging_financials;" log "[$YEAR/$CATEGORY] COPY $FILE..." psql -v ON_ERROR_STOP=1 < 0) AS cu_ca, COUNT(*) FILTER (WHERE numar_salariati > 0) AS cu_salariati FROM firms.financials GROUP BY year ORDER BY year; " 2>&1 | tee -a "$LOG" log "=== Import done ==="