# Notificări

8 rute, cu exemplu de cerere pentru fiecare.

Adresa de bază: `https://app.ilustromania.com/nucleu`

### GET /v1/eu/notificari

Acces: `sesiune`

**Notificările mele**

Pagina de notificări a omului logat, cu cursor `urmator`; contul de probă primește lista goală.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `notificari` | `object[]` | da | — |
| `notificari[].id` | `string` | da | UUID |
| `notificari[].tip` | `string` | da | una din: `mentiune`, `activitate` |
| `notificari[].cineNume` | `string` | da | între 1 și 120 caractere |
| `notificari[].cineContId` | `string` | da | UUID |
| `notificari[].text` | `string` | da | între 1 și 500 caractere |
| `notificari[].legatura` | `string` | da | cel mult 500 caractere |
| `notificari[].creataLa` | `string` | da | moment ISO 8601 |
| `notificari[].citita` | `boolean` | da | — |
| `urmator` | `string` | da | — |

```bash
curl https://app.ilustromania.com/nucleu/v1/eu/notificari \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

Răspuns 200 (exemplu din schemă):

```json
{
  "notificari": [
    {
      "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "tip": "mentiune",
      "cineNume": "text",
      "cineContId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "text": "text",
      "legatura": "text",
      "creataLa": "2026-11-12T09:30:00.000Z",
      "citita": true
    }
  ],
  "urmator": "text"
}
```

### POST /v1/eu/notificari/{id}/citita

Acces: `sesiune`

**Marchează o notificare citită**

Marchează notificarea `:id` ca citită; 404 dacă nu e a omului.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | identificatorul resursei |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `marcate` | `integer` | da | între 0 și 9007199254740991 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/eu/notificari/{id}/citita \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{ … }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "marcate": 1
}
```

### POST /v1/eu/notificari/citite

Acces: `sesiune`

**Marchează toate notificările citite**

Marchează ca citite toate notificările omului (sau pe cele din corp); 403 pe contul de probă.

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `tip` | `string` | nu | una din: `mentiune`, `activitate` |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `marcate` | `integer` | da | între 0 și 9007199254740991 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/eu/notificari/citite \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "tip": "mentiune"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "marcate": 1
}
```

### GET /v1/eu/notificari/istoric

Acces: `sesiune`

**Istoricul alertelor mele**

Alertele omului logat, opțional pe un grup (`?grup=`); 400 la grup necunoscut.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `ok` | `boolean` | da | una din: `true` |
| `necitite` | `integer` | da | între 0 și 9007199254740991 |
| `vedeTehnice` | `boolean` | da | — |
| `notificari` | `object[]` | da | — |
| `notificari[].cand` | `string` | da | moment ISO 8601 |
| `notificari[].tip` | `string` | da | — |
| `notificari[].nume` | `string` | da | — |
| `notificari[].grup` | `string` | da | una din: `tehnic`, `utilizator` |
| `notificari[].titlu` | `string` | da | — |
| `notificari[].text` | `string` | da | — |
| `notificari[].url` | `string` | da | — |
| `notificari[].nou` | `boolean` | da | — |
| `notificari[].n` | `integer` | da | între 1 și 9007199254740991 |
| `notificari[].randuri` | `any[]` | da | — |

```bash
curl https://app.ilustromania.com/nucleu/v1/eu/notificari/istoric \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

Răspuns 200 (exemplu din schemă):

```json
{
  "ok": true,
  "necitite": 1,
  "vedeTehnice": true,
  "notificari": [
    {
      "cand": "2026-11-12T09:30:00.000Z",
      "tip": "text",
      "nume": "text",
      "grup": "tehnic",
      "titlu": "text",
      "text": "text",
      "url": "text",
      "nou": true,
      "n": 1,
      "randuri": []
    }
  ]
}
```

### GET /v1/eu/notificari/necitite

Acces: `sesiune`

**Numărul de notificări necitite**

Câte notificări necitite are omul logat, opțional pe un tip.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `necitite` | `integer` | da | între 0 și 9007199254740991 |

```bash
curl https://app.ilustromania.com/nucleu/v1/eu/notificari/necitite \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

Răspuns 200 (exemplu din schemă):

```json
{
  "necitite": 1
}
```

### GET /v1/eu/notificari/preferinte

Acces: `sesiune`

**Preferințele mele de notificare**

Ce notificări primește omul logat; contul de probă primește valorile implicite.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `oprite` | `string[]` | da | — |
| `linisteDe` | `string` | da | — |
| `linistePana` | `string` | da | — |
| `vazutLa` | `string` | da | moment ISO 8601 |

```bash
curl https://app.ilustromania.com/nucleu/v1/eu/notificari/preferinte \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

Răspuns 200 (exemplu din schemă):

```json
{
  "oprite": [
    "imagine"
  ],
  "linisteDe": "text",
  "linistePana": "text",
  "vazutLa": "2026-11-12T09:30:00.000Z"
}
```

### POST /v1/eu/notificari/preferinte

Acces: `sesiune`

**Salvează preferințele de notificare**

Scrie preferințele de notificare ale omului logat; 403 pe contul de probă.

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `oprite` | `string[]` | nu | cel mult 64 elemente |
| `linisteDe` | `string` | nu | — |
| `linistePana` | `string` | nu | — |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `oprite` | `string[]` | da | — |
| `linisteDe` | `string` | da | — |
| `linistePana` | `string` | da | — |
| `vazutLa` | `string` | da | moment ISO 8601 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/eu/notificari/preferinte \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "oprite": [
      "imagine"
    ],
    "linisteDe": "text",
    "linistePana": "text"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "oprite": [
    "imagine"
  ],
  "linisteDe": "text",
  "linistePana": "text",
  "vazutLa": "2026-11-12T09:30:00.000Z"
}
```

### POST /v1/eu/notificari/vazut

Acces: `sesiune`

**Marchează notificările ca văzute**

Notează momentul în care omul a văzut lista de notificări; 403 pe contul de probă.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `vazutLa` | `string` | da | moment ISO 8601 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/eu/notificari/vazut \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{ … }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "vazutLa": "2026-11-12T09:30:00.000Z"
}
```
