110 lines
4.0 KiB
JSON
110 lines
4.0 KiB
JSON
{
|
||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
"title": "Attendance PDF Generator – Konfiguration",
|
||
"description": "Konfigurationsschema für config.json",
|
||
"type": "object",
|
||
"required": [
|
||
"version",
|
||
"antragsnummer",
|
||
"ort",
|
||
"template_pdf",
|
||
"output_dir",
|
||
"excel_year_pattern",
|
||
"excel_name_header",
|
||
"excel_name_column",
|
||
"excel_seq_column",
|
||
"excel_day_start_col",
|
||
"excel_day_end_col",
|
||
"month_mapping",
|
||
"valid_status_codes",
|
||
"plan_hours_value",
|
||
"pauschale_value"
|
||
],
|
||
"properties": {
|
||
"version": {
|
||
"type": "string",
|
||
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
|
||
"description": "Semantic version (z. B. 1.0.0)"
|
||
},
|
||
"antragsnummer": {
|
||
"type": "string",
|
||
"description": "SAB-Antragsnummer (statisch, aus config)"
|
||
},
|
||
"ort": {
|
||
"type": "string",
|
||
"description": "Ort für die Unterschrift (statisch, aus config)"
|
||
},
|
||
"template_pdf": {
|
||
"type": "string",
|
||
"description": "Relativer Pfad zum PDF-Template"
|
||
},
|
||
"output_dir": {
|
||
"type": "string",
|
||
"description": "Ausgabeverzeichnis für generierte PDFs"
|
||
},
|
||
"excel_year_pattern": {
|
||
"type": "string",
|
||
"description": "Regex-Muster zur Jahresextraktion aus dem Dateinamen"
|
||
},
|
||
"excel_name_header": {
|
||
"type": "string",
|
||
"description": "Text in der Headerzeile der Namensspalte"
|
||
},
|
||
"excel_name_column": {
|
||
"type": "integer",
|
||
"description": "0-basierter Spaltenindex der Namensspalte (Spalte B = 1)"
|
||
},
|
||
"excel_seq_column": {
|
||
"type": "integer",
|
||
"description": "0-basierter Spaltenindex der lfd. Nummer (Spalte A = 0)"
|
||
},
|
||
"excel_day_start_col": {
|
||
"type": "integer",
|
||
"description": "0-basierter Spaltenindex des ersten Tages (Spalte J = 9)"
|
||
},
|
||
"excel_day_end_col": {
|
||
"type": "integer",
|
||
"description": "0-basierter Spaltenindex des letzten Tages (Spalte AN = 39)"
|
||
},
|
||
"month_mapping": {
|
||
"type": "object",
|
||
"description": "Mapping der deutschen Monatsabkürzungen auf zweistellige Monatsnummern",
|
||
"additionalProperties": {
|
||
"type": "string",
|
||
"pattern": "^(0[1-9]|1[0-2])$"
|
||
}
|
||
},
|
||
"valid_status_codes": {
|
||
"type": "array",
|
||
"items": { "type": "string" },
|
||
"description": "Gültige String-Statuscodes in Excel-Zellen (außer numerisch)"
|
||
},
|
||
"plan_hours_value": {
|
||
"type": "string",
|
||
"description": "Wert für das plan.N Dropdown (immer '6')"
|
||
},
|
||
"pauschale_value": {
|
||
"type": "string",
|
||
"description": "Wert für das pauschale.N Feld wenn anwesend"
|
||
},
|
||
"pdf_use_display_values": {
|
||
"type": "boolean",
|
||
"description": "true = Dropdown-Anzeigewerte ins PDF schreiben (z.B. 'X = anwesend'); false = rohe Export-Werte (z.B. 'X')",
|
||
"default": true
|
||
},
|
||
"pdf_need_appearances": {
|
||
"type": "boolean",
|
||
"description": "Steuert AcroForm /NeedAppearances beim Schreiben der PDF. false wird fuer stabile PyMuPDF-Render bevorzugt (Footer/Buttons sichtbar).",
|
||
"default": false
|
||
},
|
||
"excel_network_source": {
|
||
"type": "string",
|
||
"description": "Optionaler SMB- oder Dateipfad zur Excel-Datei, die beim GUI-Start nach input/ kopiert und bei Bedarf aktualisiert wird"
|
||
},
|
||
"update_check_path": {
|
||
"type": "string",
|
||
"description": "SMB-Pfad zum Verzeichnis mit Installer-Dateien (AnwesenheitPDF-Setup-x.y.z.exe) fuer automatische Update-Pruefung"
|
||
}
|
||
}
|
||
}
|