from core.models.BaseConnection import BaseConnection from dataclasses import dataclass @dataclass class SessionConnection(BaseConnection): masked: bool = False def __post_init__(self): if self.code not in ('system', 'tor', 'wireguard', 'vless', 'hysteria2'): raise ValueError('Invalid connection code.') def is_unprotected(self): return self.code == 'system' and self.masked is False def needs_proxy_configuration(self): return self.masked is True def needs_operator_proxy(self): return self.code in ('vless', 'hysteria2') def get_protocol(self): return self.code if self.needs_operator_proxy() else None