# Datele firmei

11 rute, cu exemplu de cerere pentru fiecare.

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

## Modulul `firma-date`

### GET /v1/firma/{firmaId}/date

Acces: `sesiune`

**Datele firmei**

Datele de identificare ale firmei (CUI, adresă, logo).

Parametri de cale:

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

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `nume` | `string` | da | între 1 și 200 caractere |
| `cui` | `string` | da | — |
| `cif` | `string` | da | între 1 și 20 caractere |
| `regCom` | `string` | da | între 1 și 40 caractere |
| `euid` | `string` | da | între 1 și 60 caractere |
| `duns` | `string` | da | — |
| `infiintata` | `string` | da | — |
| `capital` | `string` | da | între 1 și 40 caractere |
| `caenPrincipal` | `string` | da | — |
| `caenSecundare` | `string[]` | da | cel mult 50 elemente |
| `sediu` | `string` | da | între 1 și 500 caractere |
| `telefon` | `string` | da | între 1 și 40 caractere |
| `email` | `string` | da | între 1 și 200 caractere |
| `emailSecundar` | `string` | da | adresă de email |
| `site` | `string` | da | între 1 și 200 caractere |
| `titular` | `string` | da | între 1 și 200 caractere |
| `iban` | `string` | da | — |
| `banca` | `string` | da | între 1 și 200 caractere |
| `bic` | `string` | da | între 1 și 20 caractere |
| `valuta` | `string` | da | între 1 și 10 caractere |
| `firmaId` | `string` | da | UUID |
| `logo` | `string` | da | — |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "nume": "text",
  "cui": "text",
  "cif": "text",
  "regCom": "text",
  "euid": "text",
  "duns": "text",
  "infiintata": "text",
  "capital": "text",
  "caenPrincipal": "text",
  "caenSecundare": [
    "text"
  ],
  "sediu": "text",
  "telefon": "text"
}
```

### PUT /v1/firma/{firmaId}/date

Acces: `sesiune`

**Salvează datele firmei**

Scrie datele de identificare ale firmei; 409 la conflict.

Parametri de cale:

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

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `nume` | `string` | da | între 1 și 200 caractere |
| `cui` | `string` | da | — |
| `cif` | `string` | da | între 1 și 20 caractere |
| `regCom` | `string` | da | între 1 și 40 caractere |
| `euid` | `string` | da | între 1 și 60 caractere |
| `duns` | `string` | da | — |
| `infiintata` | `string` | da | — |
| `capital` | `string` | da | între 1 și 40 caractere |
| `caenPrincipal` | `string` | da | — |
| `caenSecundare` | `string[]` | da | cel mult 50 elemente |
| `sediu` | `string` | da | între 1 și 500 caractere |
| `telefon` | `string` | da | între 1 și 40 caractere |
| `email` | `string` | da | între 1 și 200 caractere |
| `emailSecundar` | `string` | da | cel mult 200 caractere |
| `site` | `string` | da | între 1 și 200 caractere |
| `titular` | `string` | da | între 1 și 200 caractere |
| `iban` | `string` | da | — |
| `banca` | `string` | da | între 1 și 200 caractere |
| `bic` | `string` | da | între 1 și 20 caractere |
| `valuta` | `string` | da | între 1 și 10 caractere |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `nume` | `string` | da | între 1 și 200 caractere |
| `cui` | `string` | da | — |
| `cif` | `string` | da | între 1 și 20 caractere |
| `regCom` | `string` | da | între 1 și 40 caractere |
| `euid` | `string` | da | între 1 și 60 caractere |
| `duns` | `string` | da | — |
| `infiintata` | `string` | da | — |
| `capital` | `string` | da | între 1 și 40 caractere |
| `caenPrincipal` | `string` | da | — |
| `caenSecundare` | `string[]` | da | cel mult 50 elemente |
| `sediu` | `string` | da | între 1 și 500 caractere |
| `telefon` | `string` | da | între 1 și 40 caractere |
| `email` | `string` | da | între 1 și 200 caractere |
| `emailSecundar` | `string` | da | adresă de email |
| `site` | `string` | da | între 1 și 200 caractere |
| `titular` | `string` | da | între 1 și 200 caractere |
| `iban` | `string` | da | — |
| `banca` | `string` | da | între 1 și 200 caractere |
| `bic` | `string` | da | între 1 și 20 caractere |
| `valuta` | `string` | da | între 1 și 10 caractere |
| `firmaId` | `string` | da | UUID |
| `logo` | `string` | da | — |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/firma/{firmaId}/date \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "nume": "text",
    "cui": "text",
    "cif": "text",
    "regCom": "text",
    "euid": "text",
    "duns": "text",
    "infiintata": "text",
    "capital": "text",
    "caenPrincipal": "text",
    "caenSecundare": [
      "text"
    ],
    "sediu": "text",
    "telefon": "text"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "nume": "text",
  "cui": "text",
  "cif": "text",
  "regCom": "text",
  "euid": "text",
  "duns": "text",
  "infiintata": "text",
  "capital": "text",
  "caenPrincipal": "text",
  "caenSecundare": [
    "text"
  ],
  "sediu": "text",
  "telefon": "text"
}
```

### DELETE /v1/firma/{firmaId}/logo

Acces: `sesiune`

**Șterge logoul firmei**

Scoate logoul și întoarce datele firmei.

Parametri de cale:

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

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `nume` | `string` | da | între 1 și 200 caractere |
| `cui` | `string` | da | — |
| `cif` | `string` | da | între 1 și 20 caractere |
| `regCom` | `string` | da | între 1 și 40 caractere |
| `euid` | `string` | da | între 1 și 60 caractere |
| `duns` | `string` | da | — |
| `infiintata` | `string` | da | — |
| `capital` | `string` | da | între 1 și 40 caractere |
| `caenPrincipal` | `string` | da | — |
| `caenSecundare` | `string[]` | da | cel mult 50 elemente |
| `sediu` | `string` | da | între 1 și 500 caractere |
| `telefon` | `string` | da | între 1 și 40 caractere |
| `email` | `string` | da | între 1 și 200 caractere |
| `emailSecundar` | `string` | da | adresă de email |
| `site` | `string` | da | între 1 și 200 caractere |
| `titular` | `string` | da | între 1 și 200 caractere |
| `iban` | `string` | da | — |
| `banca` | `string` | da | între 1 și 200 caractere |
| `bic` | `string` | da | între 1 și 20 caractere |
| `valuta` | `string` | da | între 1 și 10 caractere |
| `firmaId` | `string` | da | UUID |
| `logo` | `string` | da | — |

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

Răspuns 200 (exemplu din schemă):

```json
{
  "nume": "text",
  "cui": "text",
  "cif": "text",
  "regCom": "text",
  "euid": "text",
  "duns": "text",
  "infiintata": "text",
  "capital": "text",
  "caenPrincipal": "text",
  "caenSecundare": [
    "text"
  ],
  "sediu": "text",
  "telefon": "text"
}
```

### PUT /v1/firma/{firmaId}/logo

Acces: `sesiune`

**Încarcă logoul firmei**

Logo PNG, JPEG sau WebP ca data-URL, cel mult 200 KB (413 prea mare).

Parametri de cale:

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

Corpul cererii (JSON):

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `logo` | `string` | da | nevid |

Răspuns 200:

| Câmp | Tip | Obligatoriu | Detalii |
| --- | --- | --- | --- |
| `nume` | `string` | da | între 1 și 200 caractere |
| `cui` | `string` | da | — |
| `cif` | `string` | da | între 1 și 20 caractere |
| `regCom` | `string` | da | între 1 și 40 caractere |
| `euid` | `string` | da | între 1 și 60 caractere |
| `duns` | `string` | da | — |
| `infiintata` | `string` | da | — |
| `capital` | `string` | da | între 1 și 40 caractere |
| `caenPrincipal` | `string` | da | — |
| `caenSecundare` | `string[]` | da | cel mult 50 elemente |
| `sediu` | `string` | da | între 1 și 500 caractere |
| `telefon` | `string` | da | între 1 și 40 caractere |
| `email` | `string` | da | între 1 și 200 caractere |
| `emailSecundar` | `string` | da | adresă de email |
| `site` | `string` | da | între 1 și 200 caractere |
| `titular` | `string` | da | între 1 și 200 caractere |
| `iban` | `string` | da | — |
| `banca` | `string` | da | între 1 și 200 caractere |
| `bic` | `string` | da | între 1 și 20 caractere |
| `valuta` | `string` | da | între 1 și 10 caractere |
| `firmaId` | `string` | da | UUID |
| `logo` | `string` | da | — |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/firma/{firmaId}/logo \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{
    "logo": "text"
  }'
```

Răspuns 200 (exemplu din schemă):

```json
{
  "nume": "text",
  "cui": "text",
  "cif": "text",
  "regCom": "text",
  "euid": "text",
  "duns": "text",
  "infiintata": "text",
  "capital": "text",
  "caenPrincipal": "text",
  "caenSecundare": [
    "text"
  ],
  "sediu": "text",
  "telefon": "text"
}
```

## Modulul `firma-conturi`

### GET /v1/firma/{firmaId}/conturi

Acces: `sesiune`

**Conturile bancare ale firmei**

Lista conturilor bancare ale firmei (administratorul ei).

Parametri de cale:

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

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

### POST /v1/firma/{firmaId}/conturi

Acces: `sesiune`

**Adaugă un cont bancar**

Adaugă un cont bancar pe firmă (administratorul ei).

Parametri de cale:

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

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

### DELETE /v1/firma/{firmaId}/conturi/{contId}

Acces: `sesiune`

**Șterge un cont bancar**

Scoate contul bancar de pe firmă; 404 negăsit.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `firmaId` | `string` | valoarea din cale |
| `contId` | `string` | valoarea din cale |

```bash
curl -X DELETE https://app.ilustromania.com/nucleu/v1/firma/{firmaId}/conturi/{contId} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE"
```

### PUT /v1/firma/{firmaId}/conturi/{contId}

Acces: `sesiune`

**Modifică un cont bancar**

Schimbă datele unui cont bancar al firmei.

Parametri de cale:

| Nume | Tip | Descriere |
| --- | --- | --- |
| `firmaId` | `string` | valoarea din cale |
| `contId` | `string` | valoarea din cale |

```bash
curl -X PUT https://app.ilustromania.com/nucleu/v1/firma/{firmaId}/conturi/{contId} \
  -H "Cookie: __Host-sesiune=$JETON_SESIUNE" \
  -H "Content-Type: application/json" \
  -d '{ … }'
```

## Modulul `conturi-conectate`

### GET /v1/conturi-conectate

Acces: `sesiune`

**Conturile conectate**

Conturile externe conectate la firma activă.

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

## Modulul `setari-ordine`

### GET /v1/setari/ordine

Acces: `sesiune`

**Ordinea grupurilor din Setări**

Grupurile și ordinea lor în pagina Setări, pentru omul logat; `null` fără salvare.

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

### PUT /v1/setari/ordine

Acces: `rol:admin`

**Salvează ordinea din Setări**

Scrie ordinea grupurilor din Setări; doar administratorul.

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