# Тикети, папки, състояния и етикети в Todomator

> Моделът на данните на Todomator: какво съдържа един тикет, шестте състояния, кой може да види тикет, папки за клиенти и проекти, етикети, коментари, връзки и прикачени файлове.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: bg
Content-SHA256: 00f7f24965270f9cd74ab29b185da03aad6d793e68c89f6624fc033cca63f087
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Центърът на Todomator е **тикетът** (таблица `tbl_ticket`, схема `Tickets` в `schemas/tickets.js`). Всичко останало организира тикети или зависи от тях.

## Какво съдържа един тикет

| Поле | Значение |
|---|---|
| `name` | заглавието (задължително) |
| `statusid` | състоянието; новият тикет е `pending`, освен ако не кажете друго |
| `folderid` | папката (клиент или проект), към която принадлежи |
| `ownerid`, `userid`, `watcherid` | авторът, възложените хора и хората, които само го следят |
| `ispublic` | видим за всички; публичният тикет няма възложени хора |
| `ispriority`, `isbillable` | маркер за приоритет и флаг за таксуване |
| `markdown`, `html` | съдържанието (интерфейсът използва Markdown) |
| `tags` | списък с етикети |
| `date`, `deadline` | денят на тикета (днес по подразбиране) и незадължителен краен срок |
| `estimate`, `worked` | оценката и вече отработените минути ([проследяване на времето](/en/todomator/time-tracking/)) |
| `reference`, `source` | свободен текст, за да свържете тикета с нещо външно |
| `parentid` | родителският тикет, за подзадачи |
| `attachments` | файловете на тикета |
| `attrs` | свободни JSON данни |
| `callback` | адрес, който получава тикета, когато той се промени ([API](/en/todomator/create-tickets-with-the-api/)) |

## Шестте състояния

Таблицата `cl_status` се създава с: `pending` (Pending), `open` (In progress), `review` (Review), `postponed` (Postponed), `note` (Note) и `closed` (Closed). Имената се превеждат на езика на потребителя.

## Кой може да види тикет

Тикетът е видим за собственика си, за хората в `userid`, за хората в `watcherid` и за всички, когато е зададено `ispublic`. Списъкът с папки, които потребителят вижда, е ограничен по същия начин: папка се появява само ако потребителят може да види тикет в нея (потребителите с `sa` виждат всички). Списъкът с тикети приема `type` (например `pending`, `postponed`, `review`, `assigned`, `note`, `unread` или `all`), `q` (търсене), `folderid`, `date`, `skip` и `limit` (по подразбиране 10).

## Папки и етикети

**Папката** има име, икона, цвят, клиент, имейл и телефон и флагове: `isbillable` (новите тикети го наследяват), `isprivate`, `ispinned`, `isarchived` и `isdisabled`. Папките се управляват само от хора с правото `admin` (или от администратори). **Етикетът** има име, цвят и икона и може да принадлежи към папка.

## Около тикета

- **Коментари** (`Comments|create`, `Comments|update`, `Comments|remove`): текст в Markdown, прикрепен към тикет.
- **Маркировки за непрочетени и отметки**: всеки потребител има собствено състояние на непрочетено и отметки за тикет.
- **Връзки** между тикети и **клониране** на тикет.
- **История и записи** на промените в тикета.
- **Прикачени файлове**: `POST /upload/` приема до 5 MB на заявка. Адресът на файла е подписан (`/download/<id>-<signature>.<ext>`): изображенията, видеото и PDF се отварят в браузъра, а останалите типове се изтеглят.
- **Актуализации на живо**: WebSocket изпраща събитие `refresh` само на хората, които могат да видят тикета, и казва на останалите кой гледа тикет в момента.
