Files
tickte-system/WOID_ATTRIBUTE_SETUP.md
Basilosaurusrex 0e19df6895 woms 3.0
2025-12-29 22:28:43 +01:00

3.6 KiB

WOID Attribut für workorders Collection

Was ist die WOID?

Die WOID (Work Order ID) ist eine 5-stellige Zahl (10000-99999), die jedes Ticket eindeutig identifiziert.

Beispiele: 10234, 54321, 99999

Appwrite Setup

Das woid Attribut muss zur workorders Collection hinzugefügt werden:

Schritt 1: Öffne Appwrite

  1. Gehe zu: https://appwrite.webklar.com
  2. Öffne dein Projekt: woms (ID: 693d9f37000b35267f1b)
  3. Gehe zu Databaseswoms-database (ID: 6943bf0e0003291f8c35)
  4. Öffne die Collection: workorders (ID: 6943bf7d001901baa60c)

Schritt 2: Erstelle das woid Attribut

  1. Klicke auf Attributes Tab

  2. Klicke auf Create Attribute

  3. Wähle String als Typ

  4. Konfiguration:

    • Attribute Key: woid
    • Size: 10
    • Required: Nein (für bestehende Tickets ohne WOID)
    • Array: Nein
    • Default Value: (leer lassen)
  5. Klicke auf Create

Schritt 3: Optional - Index erstellen

Für schnellere Suche nach WOID:

  1. Gehe zum Indexes Tab

  2. Klicke auf Create Index

  3. Konfiguration:

    • Index Key: woid_index
    • Type: Key
    • Attributes: Wähle woid
    • Order: ASC
  4. Klicke auf Create

Wie funktioniert die WOID?

Automatische Generierung

Beim Erstellen eines neuen Tickets wird automatisch eine 5-stellige WOID generiert:

// Beispiel: 12345, 54321, 99999
const generateWOID = () => {
  const timestamp = Date.now().toString()
  const random = Math.floor(Math.random() * 90000) + 10000
  const combined = (parseInt(timestamp.slice(-5)) + random) % 90000 + 10000
  return combined.toString().padStart(5, '0')
}

Anzeige in der App

  • Ticket-Liste: Zeigt die WOID in der ersten Spalte
  • Ticket-Details: WOID im Header
  • Filter: Suche nach WOID möglich

Format

  • Länge: Immer 5 Zeichen
  • Typ: Nur Zahlen (0-9)
  • Bereich: 10000-99999
  • Beispiele: 10234, 54321, 99999

Bestehende Tickets

Tickets die vor diesem Update erstellt wurden, haben möglicherweise keine WOID.

Fallback: Wenn keine WOID vorhanden ist, werden die letzten 5 Zeichen der Document ID angezeigt.

Fehlerbehebung

"Unknown attribute: woid"

Problem: Das woid Attribut existiert nicht in der Collection.

Lösung: Folge Schritt 2 oben, um das Attribut zu erstellen.

WOID zeigt Buchstaben

Problem: Alte Tickets haben keine WOID und verwenden den Fallback (Document ID).

Lösung:

  1. Erstelle das woid Attribut (Schritt 2)
  2. Neue Tickets bekommen automatisch eine WOID
  3. Optional: Bestehende Tickets manuell aktualisieren

WOID Duplikate

Problem: Zwei Tickets haben die gleiche WOID (sehr unwahrscheinlich).

Lösung: Der Algorithmus verwendet Timestamp + Zufallszahl für Eindeutigkeit. Bei Millionen von Tickets könnte theoretisch eine Kollision auftreten.

Verbesserung: Verwende einen Index mit unique: true und behandle Fehler beim Erstellen.

Technische Details

Datentyp in Appwrite

  • String (nicht Integer), weil:
    • Führende Nullen möglich (z.B. 00123)
    • Einfacher zu suchen und zu filtern
    • Kompatibel mit verschiedenen Formaten

Speicherung

workorderData = {
  // ...
  woid: "12345", // String mit 5 Ziffern
  // ...
}

Anzeige

// In TicketRow.jsx
<div>{ticket.woid || ticket.$id?.slice(-5)}</div>

Fertig!

Nach dem Erstellen des woid Attributs:

  • Neue Tickets bekommen automatisch eine 5-stellige WOID
  • WOID wird in der Ticket-Liste angezeigt
  • Suche nach WOID funktioniert
  • Keine Buchstaben mehr in der WOID