Veri modeli
Alan modeli src/lib/types.ts dosyasındadır. Bu sayfa bir özettir, asıl kaynak dosyanın kendisidir. Alan ve değer adları koddaki gibi İngilizce bırakılmıştır.
ObjectType (tür)
Bölüm başlığı “ObjectType (tür)”| Alan | Tip | Notlar |
|---|---|---|
id |
ID |
|
name |
string |
|
prefix |
string |
Kodlarda kullanılır: gps → gps_001 |
icon, category, description |
string |
|
fields |
FieldDef[] |
Özellik şeması |
slots |
Slot[] |
Beklenen bileşenler |
nextNumber |
number |
Sonraki kod numarası; hiç azalmaz |
FieldDef: key, label, type (text · number · select · date · boolean), isteğe bağlı options, unit, required.
Slot: id, typeId, isteğe bağlı label, isteğe bağlı qty (boş = istenen sayıda).
Item (ekipman)
Bölüm başlığı “Item (ekipman)”| Alan | Tip | Notlar |
|---|---|---|
id |
ID |
|
typeId |
ID |
|
code |
string |
drone_001 |
name |
string? |
|
status |
Status |
operational · attention · maintenance · faulty · retired |
parentId |
ID | null |
Takılı olduğu ekipman |
slotId |
ID? |
Üst ekipmanda doldurduğu yuva |
custodianId |
ID? |
Zimmetli |
location |
string? |
|
labels |
Record<string, string | number | boolean> |
Anahtar: FieldDef.key |
watchers |
ID[] |
Takipçiler |
Doc (belge)
Bölüm başlığı “Doc (belge)”name, kind (pdf · image · sheet · text · archive · other), size, isteğe bağlı description ve bir scope (kapsam):
type DocScope = | { kind: 'item'; itemId: ID } | { kind: 'type'; typeId: ID } | { kind: 'variant'; typeId: ID; field: string; value: string }Comment (yorum)
Bölüm başlığı “Comment (yorum)”target ({ kind: 'item' | 'type'; id }), authorId, body, via (web · email · qr), isteğe bağlı replyTo.
Handover (zimmet devri)
Bölüm başlığı “Handover (zimmet devri)”| Alan | Notlar |
|---|---|
itemId |
|
fromId |
Devir başladığındaki zimmetli; boş = depodan |
toId |
Alan kişi |
requestedBy |
Devri başlatan. Karşı taraf onaylar. |
status |
pending · accepted · declined · cancelled |
note, responseNote |
|
checked, missing |
Yerinde olduğu onaylanan / eksik bildirilen bileşen ID’leri |
condition |
Alan kişinin onayladığı durum |
Activity ve Notification
Bölüm başlığı “Activity ve Notification”İkisi de hazır cümle olarak değil, veri olarak (kind ve ID’ler) saklanır. Böylece görüntüleyenin dilinde gösterilir. Etkinlik türleri: created, status, assigned, unassigned, comment, document, labels, custody, handover, type.
AuditEntry (denetim kaydı)
Bölüm başlığı “AuditEntry (denetim kaydı)”action (delete · restore), entity (item · type · doc · comment · user), label (işlem anındaki kod veya ad), actorId, reason ve geri yükleme için gereken her şeyi içeren bir snapshot.
User (kullanıcı)
Bölüm başlığı “User (kullanıcı)”name, email, role (admin · editor · viewer), team, status (active · invited · disabled).