gateway/modules/serviceCenter/context.py
2026-03-29 12:18:58 +02:00

35 lines
1.1 KiB
Python

# Copyright (c) 2025 Patrick Motsch
# All rights reserved.
"""
Service Center Context.
Minimal context passed to services: user, mandate, feature instance, workflow.
"""
from dataclasses import dataclass
from typing import Any, Optional
from modules.datamodels.datamodelUam import User
@dataclass
class ServiceCenterContext:
"""Context for service resolution: user, mandate, feature instance, optional workflow."""
user: User
mandate_id: Optional[str] = None
feature_instance_id: Optional[str] = None
workflow_id: Optional[str] = None
workflow: Any = None
requireNeutralization: Optional[bool] = None
# When workflow is absent (e.g. workspace agent), billing/UI still need feature code for transactions.
feature_code: Optional[str] = None
@property
def mandateId(self) -> Optional[str]:
"""Alias for mandate_id (backward compatibility)."""
return self.mandate_id
@property
def featureInstanceId(self) -> Optional[str]:
"""Alias for feature_instance_id (backward compatibility)."""
return self.feature_instance_id