43 lines
2.0 KiB
Python
43 lines
2.0 KiB
Python
from typing import Any
|
|
from typing import Dict
|
|
from typing import Optional
|
|
from typing import Type
|
|
|
|
import json
|
|
|
|
class ClientSettings:
|
|
def __init__(self, currency_id: Optional[str] = None,
|
|
language_id: Optional[str] = None,
|
|
payment_terms: Optional[int] = None,
|
|
default_task_rate: Optional[float] = None,
|
|
send_reminders: Optional[bool] = None,
|
|
valid_until: Optional[str] = None,
|
|
enable_client_portal_password: Optional[bool] = None):
|
|
self.currency_id = currency_id
|
|
self.language_id = language_id
|
|
self.payment_terms = payment_terms
|
|
self.default_task_rate = default_task_rate
|
|
self.send_reminders = send_reminders
|
|
self.valid_until = valid_until
|
|
self.enable_client_portal_password = enable_client_portal_password
|
|
|
|
@classmethod
|
|
def from_json(cls: Type['ClientSettings'], settings: Dict[str, Any]) -> 'ClientSettings':
|
|
return cls(currency_id=settings.get('currency_id', None),
|
|
language_id=settings.get('language_id', None),
|
|
payment_terms=settings.get('payment_terms', None),
|
|
default_task_rate=settings.get('default_task_rate', None),
|
|
send_reminders=settings.get('send_reminders', None),
|
|
valid_until=settings.get('valid_until', None),
|
|
enable_client_portal_password=settings.get('enable_client_portal_password', None))
|
|
|
|
def to_json(self) -> str:
|
|
return json.dumps({'currency_id': self.currency_id,
|
|
'language_id': self.language_id,
|
|
'payment_terms': self.payment_terms,
|
|
'default_task_rate': self.default_task_rate,
|
|
'send_reminders': self.send_reminders,
|
|
'valid_until': self.valid_until,
|
|
'enable_client_portal_password': self.enable_client_portal_password})
|
|
|