summaryrefslogtreecommitdiff
path: root/config.py
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