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