c-stone-invoice-check/docs/schema.md

4.5 KiB

Datenbankschema — C-Stone Invoice Check

Overview

┌─────────────┐      ┌─────────────┐      ┌─────────────────┐
│   Users     │      │  EmailLogs  │      │    Invoices     │
├─────────────┤      ├─────────────┤      ├─────────────────┤
│ id (PK)     │───── │ email_id    │───── │ id (PK)         │
│ username    │      │ subject     │      │ email_id        │
│ password    │      │ from        │      │ subject         │
│ active      │      │ date        │      │ from            │
└─────────────┘      │ folder      │      │ date            │
                     │ keywords    │      │ amount          │
                     │ attachment  │      │ tax_amount      │
                     │ processed   │      │ tax_type        │
                     └─────────────┘      │ issuer          │
                                          │ file_path       │
                                          └─────────────────┘
                                                   │
                                                   │
                                          ┌─────────────────┐
                                          │ InvoiceDetails  │
                                          ├─────────────────┤
                                          │ id (PK)         │
                                          │ invoice_id (FK) │
                                          │ raw_text        │
                                          │ parsed_data     │
                                          │ confidence      │
                                          └─────────────────┘

Tabellen

users

Speichert Benutzer für die Web-Interface Authentifizierung.

Spalte Typ Beschreibung
id Integer Primärschlüssel
username String Benutzername (unique)
hashed_password String Passwort-Hash (bcrypt)
is_active Boolean Account aktiviert
created_at DateTime Erstellungsdatum

email_logs

Protokolliert jede geprüfte Email.

Spalte Typ Beschreibung
id Integer Primärschlüssel
email_id String IMAP UID (unique)
subject String Betreff
from String Absender
date DateTime Empfangsdatum
folder String Mail-Ordner
matched_keywords JSON Gefundene Keywords
has_attachment Boolean Hat Anhang
attachment_type String pdf/doc/docx
processed Boolean Verarbeitet
invoice_id Integer Verweis auf Invoice (nullable)
created_at DateTime Erstellungsdatum

invoices

Speichert die Rechnungs-Metadaten.

Spalte Typ Beschreibung
id Integer Primärschlüssel
email_id String IMAP UID der Original-Email
subject String Email-Betreff
from String Email-Absender
date DateTime Email-Datum
invoice_number String Rechnungsnummer
invoice_date DateTime Rechnungsdatum
amount Float Rechnungssumme
tax_amount Float Steuerbetrag
tax_rate Float Steuersatz (0.0, 0.19, etc.)
tax_type String "MwSt", "Umsatzsteuer", "VAT", "ohne"
issuer_name String Rechnungsausteller
file_path String Vollständiger Pfad auf Evo-X2
storage_year Integer Jahr (2025, 2026)
storage_path String Unterordner (z.B. "2025/ohne MwSt")
processed Boolean Verarbeitung abgeschlossen
processing_error Text Fehlermeldung (nullable)
confidence_score Float 0.0 - 1.0
created_at DateTime Erstellungsdatum
updated_at DateTime Letzte Änderung

invoice_details

Speichert erweiterte Daten (roher PDF-Text, geparste Daten).

Spalte Typ Beschreibung
id Integer Primärschlüssel
invoice_id Integer Verweis auf Invoice
raw_text Text Extrahierter PDF-Text
parsed_data JSON Strukturierte Daten
confidence_breakdown JSON Einzelne Confidence-Werte
processing_notes Text Anmerkungen
created_at DateTime Erstellungsdatum