118 lines
2.1 KiB
Python
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
|
|
}
|
|
}
|