# Δελτία, φάκελοι, καταστάσεις και ετικέτες στο Todomator

> Το μοντέλο δεδομένων του Todomator: τι περιέχει ένα δελτίο, οι έξι καταστάσεις, ποιος μπορεί να δει ένα δελτίο, φάκελοι για πελάτες και έργα, ετικέτες, σχόλια, σύνδεσμοι και συνημμένα.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: el
Content-SHA256: c1631319e2c0b4815b13e143b851014d21dcf3fa432bb0df6c5e73f9f60de22d
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 από προεπιλογή).

## Φάκελοι και ετικέτες

Ένας **φάκελος** έχει όνομα, εικονίδιο, χρώμα, πελάτη, email και τηλέφωνο, και σημαίες: `isbillable` (τα νέα δελτία την κληρονομούν), `isprivate`, `ispinned`, `isarchived` και `isdisabled`. Μόνο τα άτομα με το δικαίωμα `admin` (ή οι διαχειριστές) διαχειρίζονται φακέλους. Μια **ετικέτα** έχει όνομα, χρώμα και εικονίδιο και μπορεί να ανήκει σε έναν φάκελο.

## Γύρω από το δελτίο

- **Σχόλια** (`Comments|create`, `Comments|update`, `Comments|remove`): κείμενο Markdown συνημμένο σε ένα δελτίο.
- **Σημάνσεις μη αναγνωσμένων και σελιδοδείκτες**: κάθε χρήστης έχει τη δική του κατάσταση μη αναγνωσμένου και σελιδοδείκτες για ένα δελτίο.
- **Σύνδεσμοι** μεταξύ δελτίων και **κλωνοποίηση** ενός δελτίου.
- **Ιστορικό και αρχεία καταγραφής** των αλλαγών ενός δελτίου.
- **Συνημμένα**: το `POST /upload/` δέχεται έως 5 MB ανά αίτημα. Η διεύθυνση ενός αρχείου είναι υπογεγραμμένη (`/download/<id>-<signature>.<ext>`): οι εικόνες, το βίντεο και τα PDF ανοίγουν στον περιηγητή και οι άλλοι τύποι κατεβαίνουν.
- **Ζωντανές ενημερώσεις**: το WebSocket στέλνει ένα γεγονός `refresh` μόνο στα άτομα που μπορούν να δουν το δελτίο και ενημερώνει τα υπόλοιπα ποιος κοιτάζει ένα δελτίο αυτή τη στιγμή.
