blob: 990a2c39b7b543a828000edfdd23a5eb60c79ea6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# config.py
from datetime import timedelta
from dateutil.relativedelta import relativedelta
class EventConfig:
"""Configuration constants for the application"""
# Event type keywords
KEYWORDS = ["EZ 100%", "EZ 50%", "EZ pauschal", "Sonstige"]
# Event type durations
EZ_PAUSCHAL_DURATION_YEARS = 2
EZ_PAUSCHAL_DURATION_DAYS_OFFSET = -1 # End date is start + 2 years - 1 day
# Prediction limits
MAX_PREDICTION_YEARS = 6
# UI Configuration
DATE_FORMAT = "dd.MM.yyyy"
DATE_FORMAT_ISO = "yyyy-MM-dd"
# File Configuration
DEFAULT_FILE_EXTENSION = ".json"
FILE_FILTER = "JSON Files (*.json)"
@classmethod
def get_ez_pauschal_duration(cls):
"""Get the duration for EZ pauschal events"""
return relativedelta(years=cls.EZ_PAUSCHAL_DURATION_YEARS, days=cls.EZ_PAUSCHAL_DURATION_DAYS_OFFSET)
@classmethod
def get_max_prediction_duration(cls):
"""Get the maximum prediction duration"""
return relativedelta(years=cls.MAX_PREDICTION_YEARS)
@classmethod
def is_valid_keyword(cls, keyword):
"""Check if a keyword is valid"""
return keyword in cls.KEYWORDS
|