Files
centurion_erp/app/centurion_feature_flag/lib/serializer.py
2025-03-13 19:47:44 +09:30

118 lines
2.1 KiB
Python

from datetime import datetime
class FeatureFlag:
"""Centurion ERP Feature Flag
Contains a Centurion ERP feature flag.
Args:
key (str):
Attributes:
__bool__ (bool): Enabled value
__str__ (str): Name of the feature flag
key (str): Feature Flag key
name (str): Feature Flag name
description (str): Feature Flag Description
enabled (bool): Enabled value of the feature flag
created (datetime): Creation date of the feature flag
modified (datetime): Date when feature flag was last modified
"""
_key: str = None
_name: str = None
_description: str = None
_enabled: bool = None
_created: datetime = None
_modified: datetime = None
def __init__(self, key, flag: dict):
self._key = key
self._name = flag['name']
self._description = flag['description']
self._enabled = flag['enabled']
self._created = flag['created']
self._modified = flag['modified']
def __bool__(self) -> bool:
"""Feature Flag Enabled
Returns:
bool: Feature flag enabled value.
"""
return self._enabled
def __str__(self) -> str:
"""Fetch name of Feature Flag
Returns:
str: Name of the Feature Flag
"""
return self._name
@property
def key(self) -> str:
return self._key
@property
def name(self) -> str:
return self._name
@property
def description(self) -> str:
return self._description
@property
def enabled(self) -> bool:
return self._enabled
@property
def created(self) -> datetime:
return self._created
@property
def modified(self) -> datetime:
return self._modified
def dump(self) -> dict:
return {
self.key: {
'name': self.name,
'description': self.description,
'enabled': self.enabled,
'created': self.created,
'modified': self.modified
}
}