# Social media

20 de rute, cu exemplu de cerere pentru fiecare.

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

## Modulul `social`

### GET /v1/social/coperte/{fisier}

Acces: `sesiune`

**Coperta unei postări**

Servește fișierul de copertă după nume validat; 404 la nume invalid sau fișier lipsă.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `fisier` | `string` | valoarea din cale |

```bash
curl https://app.ilustromania.com/nucleu/v1/social/coperte/{fisier} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

### GET /v1/social/fisiere

Acces: `sesiune`

**Fișierele social din Drive**

Fișierele din folderul social de pe Drive (rădăcina sau `?folder=`).

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

### GET /v1/social/fisiere/miniatura/{id}

Acces: `sesiune`

**Miniatura unui fișier social**

Miniatura fișierului Drive `:id` din folderul social.

Parametri de cale:

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

```bash
curl https://app.ilustromania.com/nucleu/v1/social/fisiere/miniatura/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

### GET /v1/social/idei

Acces: `sesiune`

**Ideile de conținut**

Ideile de postări ale firmei.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `idei` | `object[]` | da | — |
| `idei[].titlu` | `string` | da | între 1 și 140 caractere |
| `idei[].descriere` | `string` | da | cel mult 4000 caractere |
| `idei[].platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `idei[].referinta` | `string \| string` | da | — |
| `idei[].id` | `string` | da | UUID |
| `idei[].autorId` | `string` | da | UUID |
| `idei[].autorNume` | `string` | da | — |
| `idei[].stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |
| `idei[].postareId` | `string` | da | UUID |
| `idei[].creatLa` | `string` | da | moment ISO 8601 |
| `poateAdauga` | `boolean` | da | — |
| `esteAdmin` | `boolean` | da | — |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "idei": [
    {
      "titlu": "text",
      "descriere": "text",
      "platforma": "instagram",
      "referinta": "",
      "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "autorId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "autorNume": "text",
      "stare": "noua",
      "postareId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "creatLa": "2026-11-12T09:30:00.000Z"
    }
  ],
  "poateAdauga": true,
  "esteAdmin": true
}
```

### POST /v1/social/idei

Acces: `sesiune`

**Adaugă o idee**

Creează o idee de postare; 201.

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `titlu` | `string` | da | între 1 și 140 caractere |
| `descriere` | `string` | da | cel mult 4000 caractere |
| `platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `referinta` | `string \| string` | da | — |

Răspuns 201:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `titlu` | `string` | da | între 1 și 140 caractere |
| `descriere` | `string` | da | cel mult 4000 caractere |
| `platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `referinta` | `string \| string` | da | — |
| `id` | `string` | da | UUID |
| `autorId` | `string` | da | UUID |
| `autorNume` | `string` | da | — |
| `stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |
| `postareId` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/social/idei \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "titlu": "text",
    "descriere": "text",
    "platforma": "instagram",
    "referinta": ""
  }'
```

Răspuns 201 (exemplu din schemă):

```json
{
  "titlu": "text",
  "descriere": "text",
  "platforma": "instagram",
  "referinta": "",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorNume": "text",
  "stare": "noua",
  "postareId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatLa": "2026-11-12T09:30:00.000Z"
}
```

### DELETE /v1/social/idei/{id}

Acces: `sesiune`

**Șterge ideea**

Șterge ideea `:id`; 204.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

```bash
curl -X DELETE https://app.ilustromania.com/nucleu/v1/social/idei/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

### PUT /v1/social/idei/{id}

Acces: `sesiune`

**Modifică ideea**

Rescrie ideea `:id`.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `titlu` | `string` | da | între 1 și 140 caractere |
| `descriere` | `string` | da | cel mult 4000 caractere |
| `platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `referinta` | `string \| string` | da | — |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `titlu` | `string` | da | între 1 și 140 caractere |
| `descriere` | `string` | da | cel mult 4000 caractere |
| `platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `referinta` | `string \| string` | da | — |
| `id` | `string` | da | UUID |
| `autorId` | `string` | da | UUID |
| `autorNume` | `string` | da | — |
| `stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |
| `postareId` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/social/idei/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "titlu": "text",
    "descriere": "text",
    "platforma": "instagram",
    "referinta": ""
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "titlu": "text",
  "descriere": "text",
  "platforma": "instagram",
  "referinta": "",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorNume": "text",
  "stare": "noua",
  "postareId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatLa": "2026-11-12T09:30:00.000Z"
}
```

### POST /v1/social/idei/{id}/in-calendar

Acces: `sesiune`

**Pune ideea în calendar**

Transformă ideea `:id` într-o postare programată.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

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

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `postare` | `object` | da | — |
| `postare.programatLa` | `string` | da | moment ISO 8601 |
| `postare.platforme` | `string[]` | da | între 1 și 4 elemente |
| `postare.tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `postare.text` | `string` | da | cel mult 4000 caractere |
| `postare.media` | `string[]` | da | cel mult 10 elemente |
| `postare.responsabilId` | `string` | da | UUID |
| `postare.stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `postare.eticheta` | `string` | da | cel mult 60 caractere |
| `postare.note` | `string` | da | cel mult 2000 caractere |
| `postare.id` | `string` | da | UUID |
| `postare.ideeId` | `string` | da | UUID |
| `postare.creatDe` | `string` | da | UUID |
| `postare.creatLa` | `string` | da | moment ISO 8601 |
| `idee` | `object` | da | — |
| `idee.titlu` | `string` | da | între 1 și 140 caractere |
| `idee.descriere` | `string` | da | cel mult 4000 caractere |
| `idee.platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `idee.referinta` | `string \| string` | da | — |
| `idee.id` | `string` | da | UUID |
| `idee.autorId` | `string` | da | UUID |
| `idee.autorNume` | `string` | da | — |
| `idee.stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |
| `idee.postareId` | `string` | da | UUID |
| `idee.creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/social/idei/{id}/in-calendar \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "programatLa": "2026-11-12T09:30:00.000Z"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "postare": {
    "programatLa": "2026-11-12T09:30:00.000Z",
    "platforme": [
      "instagram"
    ],
    "tip": "postare",
    "text": "text",
    "media": [
      "text"
    ],
    "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "stare": "ciorna",
    "eticheta": "text",
    "note": "text",
    "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
  },
  "idee": {
    "titlu": "text",
    "descriere": "text",
    "platforma": "instagram",
    "referinta": "",
    "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "autorId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "autorNume": "text",
    "stare": "noua",
    "postareId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "creatLa": "2026-11-12T09:30:00.000Z"
  }
}
```

### PATCH /v1/social/idei/{id}/stare

Acces: `sesiune`

**Starea ideii**

Schimbă starea ideii `:id`.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `titlu` | `string` | da | între 1 și 140 caractere |
| `descriere` | `string` | da | cel mult 4000 caractere |
| `platforma` | `string` | da | una din: `instagram`, `facebook`, `tiktok`, `google` |
| `referinta` | `string \| string` | da | — |
| `id` | `string` | da | UUID |
| `autorId` | `string` | da | UUID |
| `autorNume` | `string` | da | — |
| `stare` | `string` | da | una din: `noua`, `acceptata`, `in_lucru`, `realizata`, `respinsa` |
| `postareId` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X PATCH https://app.ilustromania.com/nucleu/v1/social/idei/{id}/stare \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "stare": "noua"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "titlu": "text",
  "descriere": "text",
  "platforma": "instagram",
  "referinta": "",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "autorNume": "text",
  "stare": "noua",
  "postareId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatLa": "2026-11-12T09:30:00.000Z"
}
```

### GET /v1/social/oameni

Acces: `sesiune`

**Oamenii din social**

Oamenii firmei care pot fi puși pe postări.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `oameni` | `object[]` | da | — |
| `oameni[].contId` | `string` | da | UUID |
| `oameni[].nume` | `string` | da | — |
| `poateEdita` | `boolean` | da | — |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "oameni": [
    {
      "contId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "nume": "text"
    }
  ],
  "poateEdita": true
}
```

### GET /v1/social/postari

Acces: `sesiune`

**Postările din calendar**

Postările programate din calendarul social al firmei.

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `postari` | `object[]` | da | — |
| `postari[].programatLa` | `string` | da | moment ISO 8601 |
| `postari[].platforme` | `string[]` | da | între 1 și 4 elemente |
| `postari[].tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `postari[].text` | `string` | da | cel mult 4000 caractere |
| `postari[].media` | `string[]` | da | cel mult 10 elemente |
| `postari[].responsabilId` | `string` | da | UUID |
| `postari[].stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `postari[].eticheta` | `string` | da | cel mult 60 caractere |
| `postari[].note` | `string` | da | cel mult 2000 caractere |
| `postari[].id` | `string` | da | UUID |
| `postari[].ideeId` | `string` | da | UUID |
| `postari[].creatDe` | `string` | da | UUID |
| `postari[].creatLa` | `string` | da | moment ISO 8601 |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "postari": [
    {
      "programatLa": "2026-11-12T09:30:00.000Z",
      "platforme": [],
      "tip": "postare",
      "text": "text",
      "media": [],
      "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "stare": "ciorna",
      "eticheta": "text",
      "note": "text",
      "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
      "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
    }
  ]
}
```

### POST /v1/social/postari

Acces: `sesiune`

**Adaugă o postare**

Creează o postare în calendar; 201.

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |

Răspuns 201:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |
| `id` | `string` | da | UUID |
| `ideeId` | `string` | da | UUID |
| `creatDe` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X POST https://app.ilustromania.com/nucleu/v1/social/postari \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "programatLa": "2026-11-12T09:30:00.000Z",
    "platforme": [
      "instagram"
    ],
    "tip": "postare",
    "text": "text",
    "media": [
      "text"
    ],
    "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "stare": "ciorna",
    "eticheta": "text",
    "note": "text"
  }'
```

Răspuns 201 (exemplu din schemă):

```json
{
  "programatLa": "2026-11-12T09:30:00.000Z",
  "platforme": [
    "instagram"
  ],
  "tip": "postare",
  "text": "text",
  "media": [
    "text"
  ],
  "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "stare": "ciorna",
  "eticheta": "text",
  "note": "text",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### DELETE /v1/social/postari/{id}

Acces: `sesiune`

**Șterge postarea**

Șterge postarea `:id`; 204.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

```bash
curl -X DELETE https://app.ilustromania.com/nucleu/v1/social/postari/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

### PUT /v1/social/postari/{id}

Acces: `sesiune`

**Modifică postarea**

Rescrie postarea `:id`.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |
| `id` | `string` | da | UUID |
| `ideeId` | `string` | da | UUID |
| `creatDe` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/social/postari/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "programatLa": "2026-11-12T09:30:00.000Z",
    "platforme": [
      "instagram"
    ],
    "tip": "postare",
    "text": "text",
    "media": [
      "text"
    ],
    "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
    "stare": "ciorna",
    "eticheta": "text",
    "note": "text"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "programatLa": "2026-11-12T09:30:00.000Z",
  "platforme": [
    "instagram"
  ],
  "tip": "postare",
  "text": "text",
  "media": [
    "text"
  ],
  "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "stare": "ciorna",
  "eticheta": "text",
  "note": "text",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### PATCH /v1/social/postari/{id}/muta

Acces: `sesiune`

**Mută postarea**

Mută postarea `:id` pe altă dată în calendar.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

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

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |
| `id` | `string` | da | UUID |
| `ideeId` | `string` | da | UUID |
| `creatDe` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X PATCH https://app.ilustromania.com/nucleu/v1/social/postari/{id}/muta \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "programatLa": "2026-11-12T09:30:00.000Z"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "programatLa": "2026-11-12T09:30:00.000Z",
  "platforme": [
    "instagram"
  ],
  "tip": "postare",
  "text": "text",
  "media": [
    "text"
  ],
  "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "stare": "ciorna",
  "eticheta": "text",
  "note": "text",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### PATCH /v1/social/postari/{id}/stare

Acces: `sesiune`

**Starea postării**

Schimbă starea postării `:id`; 409 la o trecere nepermisă.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `id` | `string` | UUID |

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `programatLa` | `string` | da | moment ISO 8601 |
| `platforme` | `string[]` | da | între 1 și 4 elemente |
| `tip` | `string` | da | una din: `postare`, `story`, `reel` |
| `text` | `string` | da | cel mult 4000 caractere |
| `media` | `string[]` | da | cel mult 10 elemente |
| `responsabilId` | `string` | da | UUID |
| `stare` | `string` | da | una din: `ciorna`, `de_aprobat`, `programata`, `publicata`, `anulata` |
| `eticheta` | `string` | da | cel mult 60 caractere |
| `note` | `string` | da | cel mult 2000 caractere |
| `id` | `string` | da | UUID |
| `ideeId` | `string` | da | UUID |
| `creatDe` | `string` | da | UUID |
| `creatLa` | `string` | da | moment ISO 8601 |

```bash
curl -X PATCH https://app.ilustromania.com/nucleu/v1/social/postari/{id}/stare \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "stare": "ciorna"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "programatLa": "2026-11-12T09:30:00.000Z",
  "platforme": [
    "instagram"
  ],
  "tip": "postare",
  "text": "text",
  "media": [
    "text"
  ],
  "responsabilId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "stare": "ciorna",
  "eticheta": "text",
  "note": "text",
  "id": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "ideeId": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f",
  "creatDe": "3f0c2a8e-6b1d-4c3a-9e2f-1a2b3c4d5e6f"
}
```

### GET /v1/social/statistici

Acces: `sesiune`

**Statisticile social**

Statisticile conturilor sociale pe 7, 28 sau 90 de zile. Doar citire, pentru oricine are sesiune în firmă.

Parametri de interogare:

| Nume | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `perioada` | `string` | da | una din: `7`, `28`, `90` |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `actualizatLa` | `string` | da | moment ISO 8601 |
| `perioada` | `number \| number \| number` | da | — |
| `conturi` | `object[]` | da | — |
| `conturi[].platforma` | `string` | da | una din: `facebook`, `instagram`, `tiktok` |
| `conturi[].idExtern` | `string` | da | — |
| `conturi[].nume` | `string` | da | — |
| `conturi[].urmaritori` | `integer` | da | între 0 și 9007199254740991 |
| `conturi[].aprecieri` | `integer` | da | între 0 și 9007199254740991 |
| `conturi[].continutTotal` | `integer` | da | între 0 și 9007199254740991 |
| `conturi[].stare` | `string` | da | una din: `ok`, `atentie` |
| `conturi[].motiv` | `string` | da | cel mult 300 caractere |
| `conturi[].actualizatLa` | `string` | da | moment ISO 8601 |
| `zile` | `object[]` | da | — |
| `zile[].platforma` | `string` | da | una din: `facebook`, `instagram`, `tiktok` |
| `zile[].zi` | `string` | da | dată `AAAA-LL-ZZ` |
| `zile[].metrica` | `string` | da | una din: `vizualizari`, `persoane`, `urmariri`, `dezabonari`, `urmaritori`, `interactiuni`, `vizite`, `vizualizari_video`, `aprecieri` |
| `zile[].valoare` | `integer` | da | între 0 și 9007199254740991 |
| `perioade` | `object[]` | da | — |
| `perioade[].platforma` | `string` | da | una din: `facebook`, `instagram`, `tiktok` |
| `perioade[].perioada` | `number \| number \| number` | da | — |
| `perioade[].metrica` | `string` | da | una din: `vizualizari`, `persoane`, `urmariri`, `dezabonari`, `urmaritori`, `interactiuni`, `vizite`, `vizualizari_video`, `aprecieri`, `conturi_implicate`, `vizite_profil`, `clickuri_site` … |
| `perioade[].valoare` | `integer` | da | între 0 și 9007199254740991 |
| `perioade[].actualizatLa` | `string` | da | moment ISO 8601 |
| `continut` | `object[]` | da | cel mult 50 elemente |
| `continut[].platforma` | `string` | da | una din: `facebook`, `instagram`, `tiktok` |
| `continut[].idExtern` | `string` | da | — |
| `continut[].tip` | `string` | da | una din: `reel`, `video`, `foto`, `multi_foto`, `link`, `text`, `story` |
| `continut[].text` | `string` | da | cel mult 500 caractere |
| `continut[].publicatLa` | `string` | da | moment ISO 8601 |
| `continut[].permalink` | `string` | da | adresă URL |
| `continut[].miniaturaUrl` | `string \| string` | da | — |
| `continut[].vizualizari` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].persoane` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].aprecieri` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].comentarii` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].distribuiri` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].salvari` | `integer` | da | între 0 și 9007199254740991 |
| `continut[].actualizatLa` | `string` | da | moment ISO 8601 |
| `demografie` | `object[]` | da | — |
| `demografie[].platforma` | `string` | da | una din: `facebook`, `instagram`, `tiktok` |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "actualizatLa": "2026-11-12T09:30:00.000Z",
  "perioada": 7,
  "conturi": [
    {
      "platforma": "facebook",
      "idExtern": "text",
      "nume": "text",
      "urmaritori": 1,
      "aprecieri": 1,
      "continutTotal": 1,
      "stare": "ok",
      "motiv": "text",
      "actualizatLa": "2026-11-12T09:30:00.000Z"
    }
  ],
  "zile": [
    {
      "platforma": "facebook",
      "zi": "2026-11-12",
      "metrica": "vizualizari",
      "valoare": 1
    }
  ],
  "perioade": [
    {
      "platforma": "facebook",
      "perioada": 7,
      "metrica": "vizualizari",
      "valoare": 1,
      "actualizatLa": "2026-11-12T09:30:00.000Z"
    }
  ],
  "continut": [
    {
      "platforma": "facebook",
      "idExtern": "text",
      "tip": "reel",
      "text": "text",
      "publicatLa": "2026-11-12T09:30:00.000Z",
      "permalink": "https://exemplu.ro",
      "miniaturaUrl": "https://exemplu.ro",
      "vizualizari": 1,
      "persoane": 1,
      "aprecieri": 1,
      "comentarii": 1,
      "distribuiri": 1
    }
  ],
  "demografie": [
    {
      "platforma": "facebook",
      "tip": "varsta_sex",
      "cheie": "text",
      "valoare": 12.5,
      "actualizatLa": "2026-11-12T09:30:00.000Z"
    }
  ]
}
```

## Modulul `social-idei`

### GET /v1/social/idei-link

Acces: `sesiune`

**Ideile din linkuri**

Linkurile salvate ca idei de conținut, cu `poate_sterge` pentru fiecare.

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

### POST /v1/social/idei-link

Acces: `sesiune`

**Salvează un link ca idee**

Adaugă un link ca idee de conținut; 400 la link invalid.

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

### DELETE /v1/social/idei-link/{id}

Acces: `sesiune`

**Șterge ideea din link**

Șterge ideea `:id`, doar de cine are voie; 404 dacă nu există.

Parametri de cale:

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

```bash
curl -X DELETE https://app.ilustromania.com/nucleu/v1/social/idei-link/{id} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```
