Files
AccountForger-neuerUpload/domain/value_objects/login_credentials.py
Claude Project Manager 04585e95b6 Initial commit
2025-08-01 23:50:28 +02:00

44 Zeilen
1.5 KiB
Python

"""
Login Credentials Value Object - Repräsentiert Login-Daten mit Session-Status
"""
from dataclasses import dataclass
from typing import Optional
from datetime import datetime
@dataclass(frozen=True)
class LoginCredentials:
"""Unveränderliche Login-Daten für einen Account"""
username: str
password: str
platform: str
session_status: str # ACTIVE, EXPIRED, LOCKED, REQUIRES_2FA, UNKNOWN
last_successful_login: Optional[datetime] = None
session_id: Optional[str] = None
fingerprint_id: Optional[str] = None
def is_session_active(self) -> bool:
"""Prüft ob die Session aktiv ist"""
return self.session_status == "ACTIVE"
def requires_manual_login(self) -> bool:
"""Prüft ob manueller Login erforderlich ist"""
return self.session_status in ["EXPIRED", "LOCKED", "REQUIRES_2FA", "UNKNOWN"]
def has_session_data(self) -> bool:
"""Prüft ob Session-Daten vorhanden sind"""
return self.session_id is not None and self.fingerprint_id is not None
def to_dict(self) -> dict:
"""Konvertiert zu Dictionary für Serialisierung"""
return {
'username': self.username,
'password': self.password,
'platform': self.platform,
'session_status': self.session_status,
'last_successful_login': self.last_successful_login.isoformat() if self.last_successful_login else None,
'session_id': self.session_id,
'fingerprint_id': self.fingerprint_id
}