# Tichete, foldere, stări și etichete în Todomator

> Modelul de date al Todomator: ce conține un tichet, cele șase stări, cine poate vedea un tichet, foldere pentru clienți și proiecte, etichete, comentarii, legături și atașamente.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: ro
Content-SHA256: d5afcc7cc2f4c3abab80586679b51fa43893cdf30fc17b74d90455a7050b0a75
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Centrul Todomator este **tichetul** (tabelul `tbl_ticket`, schema `Tickets` în `schemas/tickets.js`). Tot restul organizează tichete sau depinde de ele.

## Ce conține un tichet

| Câmp | Semnificație |
|---|---|
| `name` | titlul (obligatoriu) |
| `statusid` | starea; un tichet nou este `pending`, dacă nu spui altfel |
| `folderid` | folderul (client sau proiect) căruia îi aparține |
| `ownerid`, `userid`, `watcherid` | autorul, persoanele atribuite și persoanele care doar îl urmăresc |
| `ispublic` | vizibil pentru toată lumea; un tichet public nu are persoane atribuite |
| `ispriority`, `isbillable` | un marcaj de prioritate și un indicator de facturabil |
| `markdown`, `html` | conținutul (interfața folosește Markdown) |
| `tags` | o listă de etichete |
| `date`, `deadline` | ziua tichetului (azi implicit) și un termen opțional |
| `estimate`, `worked` | estimarea și minutele deja lucrate ([urmărirea timpului](/en/todomator/time-tracking/)) |
| `reference`, `source` | text liber pentru a lega tichetul de ceva din exterior |
| `parentid` | tichetul părinte, pentru subsarcini |
| `attachments` | fișierele tichetului |
| `attrs` | date JSON libere |
| `callback` | o adresă care primește tichetul când se schimbă ([API](/en/todomator/create-tickets-with-the-api/)) |

## Cele șase stări

Tabelul `cl_status` este creat cu: `pending` (Pending), `open` (In progress), `review` (Review), `postponed` (Postponed), `note` (Note) și `closed` (Closed). Numele sunt traduse în limba utilizatorului.

## Cine poate vedea un tichet

Un tichet este vizibil pentru proprietarul său, pentru persoanele din `userid`, pentru persoanele din `watcherid` și pentru toată lumea când `ispublic` este setat. Lista folderelor pe care le vede un utilizator este limitată la fel: un folder apare doar dacă utilizatorul poate vedea un tichet în el (utilizatorii cu `sa` le văd pe toate). Lista tichetelor primește `type` (de exemplu `pending`, `postponed`, `review`, `assigned`, `note`, `unread` sau `all`), `q` (căutare), `folderid`, `date`, `skip` și `limit` (10 implicit).

## Foldere și etichete

Un **folder** are un nume, o pictogramă, o culoare, un client, un e-mail și un telefon, și indicatori: `isbillable` (tichetele noi îl moștenesc), `isprivate`, `ispinned`, `isarchived` și `isdisabled`. Doar persoanele cu permisiunea `admin` (sau administratorii) gestionează folderele. O **etichetă** are un nume, o culoare și o pictogramă și poate aparține unui folder.

## În jurul tichetului

- **Comentarii** (`Comments|create`, `Comments|update`, `Comments|remove`): text Markdown atașat unui tichet.
- **Marcaje de necitit și semne de carte**: fiecare utilizator are propria stare de necitit și semne de carte pentru un tichet.
- **Legături** între tichete și **clonarea** unui tichet.
- **Istoric și jurnale** ale modificărilor unui tichet.
- **Atașamente**: `POST /upload/` primește până la 5 MB pe cerere. Adresa unui fișier este semnată (`/download/<id>-<signature>.<ext>`): imaginile, video și PDF se deschid în browser, iar celelalte tipuri sunt descărcate.
- **Actualizări în timp real**: WebSocket-ul trimite un eveniment `refresh` doar persoanelor care pot vedea tichetul și le spune celorlalți cine se uită la un tichet în acest moment.
