Add additional logic to existing models

This commit is contained in:
codeking 2024-09-20 01:56:56 +02:00
parent 6a066ce3f4
commit c54427790a
3 changed files with 16 additions and 4 deletions

View file

@ -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'

View file

@ -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)

View file

@ -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')