import uuid from django.contrib.auth.models import User from django.db import models class DokumentVorlage(models.Model): """Web-editierbare Vorlagen für generierte Dokumente (PDF, E-Mail, Berichte).""" KATEGORIE_CHOICES = [ ("pdf", "PDF-Dokument"), ("email", "E-Mail"), ("bericht", "Bericht"), ("serienbrief", "Serienbrief"), ] id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) schluessel = models.CharField( max_length=200, unique=True, verbose_name="Schlüssel", help_text="Interner Template-Pfad, z.B. pdf/bestaetigung.html", ) bezeichnung = models.CharField(max_length=200, verbose_name="Bezeichnung") kategorie = models.CharField( max_length=30, choices=KATEGORIE_CHOICES, verbose_name="Kategorie", ) html_inhalt = models.TextField(verbose_name="HTML-Inhalt") verfuegbare_variablen = models.JSONField( default=dict, blank=True, verbose_name="Verfügbare Variablen", help_text="JSON-Dokumentation der verfügbaren Template-Variablen", ) zuletzt_bearbeitet_von = models.ForeignKey( User, null=True, blank=True, on_delete=models.SET_NULL, related_name="bearbeitete_vorlagen", verbose_name="Zuletzt bearbeitet von", ) zuletzt_bearbeitet_am = models.DateTimeField(auto_now=True, verbose_name="Zuletzt bearbeitet") erstellt_am = models.DateTimeField(auto_now_add=True, verbose_name="Erstellt am") class Meta: verbose_name = "Dokument-Vorlage" verbose_name_plural = "Dokument-Vorlagen" ordering = ["kategorie", "bezeichnung"] def __str__(self): return f"{self.bezeichnung} ({self.schluessel})"