# Codurile consolidate + tematica de examen

Fiecare fișier este un cod consolidat, în JSON, extras de pe legislatie.just.ro.
Sunt aceleași texte pe care le folosește poarta juridică la publicarea grilelor.

## Structura unui articol

```json
"193": {
  "nr": "193",
  "titlu": "Lovirea sau alte violențe",
  "abrogat": false,
  "tematica": { "inm": ["Penal special"], "barou": ["Penal special"] },
  "text": "Articolul 193 Lovirea sau alte violențe (1) ...",
  "alineate": { "1": "Lovirea sau orice acte...", "2": "Fapta prin care..." }
}
```

Cheia e numărul FĂRĂ separator de mii: art. 1.380 C.civ. → `"1380"`.
Articolele cu indice păstrează notația: art. 218^1 → `"218^1"`.

## Cum se folosesc, înainte de a scrie o grilă

**1. `abrogat` — dacă e `true`, oprește-te.** Articolul nu mai există; grila e greșită din
start. Prinse la publicare în ultima vreme: art. 220 C.pen. (abrogat de la 1 ianuarie 2024
prin Legea 217/2023, ipotezele au trecut la art. 218^1 și 219^1), art. 105 și 493
C.proc.civ. (abrogate prin Legea 310/2018).

**2. `tematica` — dacă lipsește, articolul nu se cere la examen.** Grila nu e greșită, dar
aplicația nu o arată candidatului care și-a ales concursul, deci efortul e irosit. Cheile
sunt `inm`, `barou`, `sng`; valoarea e materia sub care se cere.

**3. `text` — citește-l, nu te baza pe memorie.** Limitele de pedeapsă se schimbă des. Numai
în ultimii doi ani: art. 193 alin. (1) C.pen. a trecut de la 3 luni–2 ani la 6 luni–3 ani
(Legea 116/2025); art. 198 alin. (1) de la 3 luni–1 an la 6 luni–3 ani (Legea 248/2023);
art. 209 de la 3–10 ani la 5–12 ani (Legea 202/2024).

**4. `alineate` — folosește-le ca să nu repeți.** Zece grile pe același alineat nu învață pe
nimeni nimic; zece grile pe zece alineate diferite, da.

## Ce capcane rezolvă fișierele astea

Textele brute de pe portal au două capcane pe care parsarea naivă le ratează:

- **Cuprinsul.** „Articolul N" apare și în cuprins, cu un corp scurt. Regula: dintre
  segmentele care încep cu același număr se ia întotdeauna CEL MAI LUNG.
- **Alineatele.** Markerul „(N)" apare și în trimiteri interne — „alin. (4) și alin. (5)".
  Regula: se împarte doar pe markerii aflați singuri pe rând.

Ambele sunt deja rezolvate aici: `articole["193"]["alineate"]["3"]` chiar este alineatul (3).

## Fișiere

| fișier | conținut | articole | în tematică |
|---|---|---|---|
| `cc.json` | Codul civil | 2.674 | 1.612 |
| `cpc.json` | Codul de procedură civilă | 1.143 | 992 |
| `cp.json` | Codul penal | 459 | 286 |
| `cpp.json` | Codul de procedură penală | 641 | 640 |
| `l51.json` | Legea 51/1995 — profesia de avocat | 114 | — |
| `l304.json` | Legea 304/2022 — organizarea judiciară | 168 | — |
| `tematica.json` | intervalele de articole pe concursuri și materii | | |
