diff --git a/core/models/BaseConnection.py b/core/models/BaseConnection.py index b99e4e2..c394b52 100644 --- a/core/models/BaseConnection.py +++ b/core/models/BaseConnection.py @@ -9,3 +9,9 @@ class BaseConnection: def needs_wireguard_configuration(self): return self.code == 'wireguard' + + def is_session_connection(self): + return type(self).__name__ == 'SessionConnection' + + def is_system_connection(self): + return type(self).__name__ == 'SystemConnection' diff --git a/core/models/Location.py b/core/models/Location.py index 7627e2a..f80a855 100644 --- a/core/models/Location.py +++ b/core/models/Location.py @@ -37,6 +37,9 @@ class Location(Model): self.available = self.exists(self.code) + def is_available(self): + return self.exists(self.code) + @staticmethod def find_by_id(id: int): Model._create_table_if_not_exists(table_name=_table_name, table_definition=_table_definition) diff --git a/core/models/Subscription.py b/core/models/Subscription.py index 983b84a..a7247f2 100644 --- a/core/models/Subscription.py +++ b/core/models/Subscription.py @@ -1,6 +1,6 @@ from dataclasses import dataclass, field from dataclasses_json import config, dataclass_json -from datetime import datetime +from datetime import datetime, timezone from marshmallow import fields from typing import Optional import dataclasses_json @@ -21,11 +21,14 @@ class Subscription: ) ) - @staticmethod - def _iso_format(datetime_instance: datetime): - return datetime.isoformat(datetime_instance).replace('+00:00', 'Z') + def is_active(self): + return self.expires_at is not None and self.expires_at > datetime.now(tz=timezone.utc) @staticmethod def from_iso_format(datetime_string: str): date_string = datetime_string.replace('Z', '+00:00') return datetime.fromisoformat(date_string) + + @staticmethod + def _iso_format(datetime_instance: datetime): + return datetime.isoformat(datetime_instance).replace('+00:00', 'Z')