refactor: comentarii strict functionale, fara referinte PRD/stories
Curatare globala a comentariilor si docstring-urilor (app, tools, teste, scripturi): eliminate referintele la PRD-uri, US-xxx, task-uri istorice si review-uri; pastrata doar informatia functionala, formulata scurt. Regula adaugata in CLAUDE.md (sectiunea Stil). Fara modificari de cod sau comportament. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
42
app/db.py
42
app/db.py
@@ -37,7 +37,7 @@ def init_db() -> None:
|
||||
from .mapping import seed_nomenclator_if_empty
|
||||
|
||||
seed_nomenclator_if_empty(conn)
|
||||
# Seed corpus operatii etichetate -> mapping_suggestions (SILVER, PRD 5.18 US-004).
|
||||
# Seed corpus operatii etichetate -> mapping_suggestions (SILVER).
|
||||
# Gated: OFF in teste (conftest), ON in productie. INSERT OR IGNORE -> idempotent.
|
||||
# DOAR daca mapping_suggestions e gol: seedul are ~17k randuri; re-rularea lui pe
|
||||
# FIECARE boot (API + worker concurent) tinea write-lock-ul indelung -> al doilea
|
||||
@@ -72,9 +72,9 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
if "row_index" not in sub_cols:
|
||||
conn.execute("ALTER TABLE submissions ADD COLUMN row_index INTEGER")
|
||||
if "rar_env" not in sub_cols:
|
||||
# PRD 5.20 US-001. Mediul RAR tinta pe submission. Pe DB existent NU lasam
|
||||
# Mediul RAR tinta pe submission. Pe DB existent NU lasam
|
||||
# randurile pe DEFAULT 'test': un rand prod pre-migrare etichetat 'test' ar fi
|
||||
# reconciliat de worker (US-006) contra endpoint TEST -> no-match -> re-send prod
|
||||
# reconciliat de worker contra endpoint TEST -> no-match -> re-send prod
|
||||
# = DUPLICAT REAL IREVERSIBIL. Backfill din AUTOPASS_RAR_ENV global (ancora de
|
||||
# migrare) + recompute idempotency_key env-aware. Ruleaza O SINGURA DATA (in
|
||||
# blocul de adaugare a coloanei); pe DB fresh coloana vine din schema.sql (fara rows).
|
||||
@@ -84,7 +84,7 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
)
|
||||
_backfill_submissions_rar_env(conn)
|
||||
if "held" not in sub_cols:
|
||||
# PRD 5.19 US-001: flag rand tinut manual. Default 0 (randurile pre-migrare nu erau
|
||||
# Flag rand tinut manual. Default 0 (randurile pre-migrare nu erau
|
||||
# tinute — pastreaza comportamentul; comutatorul de cont e OFF/held la ingestie NOUA).
|
||||
conn.execute(
|
||||
"ALTER TABLE submissions ADD COLUMN held INTEGER NOT NULL DEFAULT 0 "
|
||||
@@ -93,11 +93,11 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
|
||||
# Coloane accounts
|
||||
acc_cols = {r["name"] for r in conn.execute("PRAGMA table_info(accounts)").fetchall()}
|
||||
# AUTO-FIX 6a ELIMINAT (US-013): NU mai adaugam accounts.rar_creds_enc — coloana e dropata.
|
||||
# _migrate_accounts_medii gestioneaza absenta coloana (guard la ~219: if "rar_creds_enc" not in acc_cols: return).
|
||||
# Medii RAR per cont (PRD 5.20 US-001): activare + slot creds + default, per mediu.
|
||||
# NU mai adaugam accounts.rar_creds_enc — coloana e dropata.
|
||||
# _migrate_accounts_medii gestioneaza absenta coloana (guard: if "rar_creds_enc" not in acc_cols: return).
|
||||
# Medii RAR per cont: activare + slot creds + default, per mediu.
|
||||
_migrate_accounts_medii(conn, acc_cols)
|
||||
# US-013: DROP coloana legacy accounts.rar_creds_enc dupa backfill complet.
|
||||
# DROP coloana legacy accounts.rar_creds_enc dupa backfill complet.
|
||||
_drop_legacy_accounts_rar_creds(conn, acc_cols)
|
||||
if "active" not in acc_cols:
|
||||
# Conturi existente raman active (default 1).
|
||||
@@ -121,7 +121,7 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
"CHECK (on_unmapped_error_default IN (0, 1))"
|
||||
)
|
||||
if "auto_send_enabled" not in acc_cols:
|
||||
# PRD 5.19 US-001: comutator Auto per cont. Default 0 (Auto OFF) — conturile existente
|
||||
# Comutator Auto per cont. Default 0 (Auto OFF) — conturile existente
|
||||
# trec pe „tine randurile" la ingestie noua pana cand operatorul porneste Auto explicit.
|
||||
# Contul id=1 ramane pe default (0), fara tratament special.
|
||||
conn.execute(
|
||||
@@ -129,10 +129,10 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
"CHECK (auto_send_enabled IN (0, 1))"
|
||||
)
|
||||
if "email" not in acc_cols:
|
||||
# Email canonic de contact al firmei (US-001, PRD 5.12). Nullable pt. conturi legacy.
|
||||
# Email canonic de contact al firmei. Nullable pt. conturi legacy.
|
||||
conn.execute("ALTER TABLE accounts ADD COLUMN email TEXT")
|
||||
if "tier" not in acc_cols:
|
||||
# Plan de cont (US-001, PRD 5.17). Legacy -> 'free' fara trial (enforcement DUR la deploy).
|
||||
# Plan de cont. Legacy -> 'free' fara trial (enforcement DUR la deploy).
|
||||
conn.execute(
|
||||
"ALTER TABLE accounts ADD COLUMN tier TEXT NOT NULL DEFAULT 'free' "
|
||||
"CHECK (tier IN ('free','standard','pro','premium'))"
|
||||
@@ -173,7 +173,7 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
if "override_json" not in irows_cols:
|
||||
conn.execute("ALTER TABLE import_rows ADD COLUMN override_json TEXT")
|
||||
if "reviewed" not in irows_cols:
|
||||
# Marcaj confirmare umana (US-007, PRD 5.12). NU intra in payload/idempotenta.
|
||||
# Marcaj confirmare umana. NU intra in payload/idempotenta.
|
||||
# NOT NULL DEFAULT 0: valoare clara (0=neconfirmat), fara ambiguitate NULL vs 0.
|
||||
conn.execute(
|
||||
"ALTER TABLE import_rows ADD COLUMN reviewed INTEGER NOT NULL DEFAULT 0"
|
||||
@@ -194,7 +194,7 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
"ON submissions(account_id, status)"
|
||||
)
|
||||
if "idx_submissions_held" not in existing_idx:
|
||||
# PRD 5.19 US-001 (Eng MEDIUM): CREATE TABLE IF NOT EXISTS nu se declanseaza pe DB
|
||||
# CREATE TABLE IF NOT EXISTS nu se declanseaza pe DB
|
||||
# existent -> indexul partial trebuie creat si aici, nu doar in schema.sql.
|
||||
conn.execute(
|
||||
"CREATE INDEX IF NOT EXISTS idx_submissions_held ON submissions(held) WHERE held=1"
|
||||
@@ -202,7 +202,7 @@ def _migrate(conn: sqlite3.Connection) -> None:
|
||||
|
||||
|
||||
def _migrate_accounts_medii(conn: sqlite3.Connection, acc_cols: set[str]) -> None:
|
||||
"""PRD 5.20 US-001: coloane medii RAR per cont + backfill din ancora globala.
|
||||
"""Coloane medii RAR per cont + backfill din ancora globala.
|
||||
|
||||
Adauga (idempotent): rar_test_enabled/rar_prod_enabled (bife activare),
|
||||
rar_creds_test_enc/rar_creds_prod_enc (sloturi creds), rar_env_default.
|
||||
@@ -212,7 +212,7 @@ def _migrate_accounts_medii(conn: sqlite3.Connection, acc_cols: set[str]) -> Non
|
||||
momentul migrarii (ancora) — il copiem in slotul acelui mediu, activam DOAR acel
|
||||
mediu (celalalt dezactivat) si fixam default-ul pe el. Conturile fara creds raman
|
||||
pe default-urile coloanei (prod on / test off). Migrarea NU presupune env-ul; se
|
||||
bazeaza pe ancora globala, exact cum opera contul inainte de 5.20.
|
||||
bazeaza pe ancora globala.
|
||||
"""
|
||||
newly_added = "rar_env_default" not in acc_cols
|
||||
if "rar_test_enabled" not in acc_cols:
|
||||
@@ -252,12 +252,12 @@ def _migrate_accounts_medii(conn: sqlite3.Connection, acc_cols: set[str]) -> Non
|
||||
|
||||
|
||||
def _drop_legacy_accounts_rar_creds(conn: sqlite3.Connection, acc_cols: set[str]) -> None:
|
||||
"""PRD 5.20 US-013: DROP coloana legacy `accounts.rar_creds_enc` dupa backfill complet.
|
||||
"""DROP coloana legacy `accounts.rar_creds_enc` dupa backfill complet.
|
||||
|
||||
Idempotent si sigur la fiecare boot (garda one-way: coloana absenta = nimic de facut).
|
||||
La eroare LOGHEAZA si lasa coloana pe loc (fail-safe — nu crapa boot-ul ambelor procese).
|
||||
Structura separata pentru testabilitate: `_garda_si_drop(conn)` expune pasul de
|
||||
assert+backup+DROP izolat (fara re-backfill 6c), apelabil direct din teste.
|
||||
assert+backup+DROP izolat (fara re-backfill), apelabil direct din teste.
|
||||
"""
|
||||
if "rar_creds_enc" not in acc_cols:
|
||||
return # garda one-way: coloana deja dropata sau DB fresh
|
||||
@@ -272,10 +272,10 @@ def _drop_legacy_accounts_rar_creds(conn: sqlite3.Connection, acc_cols: set[str]
|
||||
|
||||
|
||||
def _drop_legacy_rar_creds_impl(conn: sqlite3.Connection) -> None:
|
||||
"""Re-backfill (AUTO-FIX 6c) + delegate la _garda_si_drop.
|
||||
"""Re-backfill + delegate la _garda_si_drop.
|
||||
|
||||
Re-backfill-ul 6c acopera creds setate via POST /v1/conturi/rar-creds intre US-001
|
||||
si US-013 (pot fi DOAR in coloana veche). Ancora globala: AUTOPASS_RAR_ENV.
|
||||
Re-backfill-ul acopera creds setate via POST /v1/conturi/rar-creds intre adaugarea
|
||||
coloanei noi si drop-ul celei vechi (pot fi DOAR in coloana veche). Ancora globala: AUTOPASS_RAR_ENV.
|
||||
"""
|
||||
if sqlite3.sqlite_version_info < (3, 35, 0):
|
||||
print(
|
||||
@@ -344,7 +344,7 @@ def _garda_si_drop(conn: sqlite3.Connection) -> None:
|
||||
|
||||
|
||||
def _backfill_submissions_rar_env(conn: sqlite3.Connection) -> None:
|
||||
"""PRD 5.20 US-001 (AUTO-FIX G + E4/3): backfill rar_env + recompute idempotency_key.
|
||||
"""Backfill rar_env + recompute idempotency_key.
|
||||
|
||||
Ruleaza O SINGURA DATA, imediat dupa ce coloana `submissions.rar_env` a fost adaugata
|
||||
pe un DB existent. Toate randurile pre-migrare au fost trimise (sau urmeaza) catre
|
||||
|
||||
Reference in New Issue
Block a user