2026-02-05 08:42:38 +01:00
|
|
|
from __future__ import annotations
|
2026-02-06 09:59:54 +01:00
|
|
|
from typing import Any, Dict
|
2026-02-05 08:42:38 +01:00
|
|
|
from uuid import uuid4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Objective:
|
2026-02-11 19:22:43 +01:00
|
|
|
def __init__(self, name: str, description: str | None):
|
2026-02-05 08:42:38 +01:00
|
|
|
self.id: str = str(uuid4())
|
|
|
|
|
self.name: str = name
|
2026-02-11 19:22:43 +01:00
|
|
|
self.description: str | None = description
|
2026-02-05 08:42:38 +01:00
|
|
|
|
|
|
|
|
def set_id(self, new_id: str) -> None:
|
|
|
|
|
self.id = new_id
|
|
|
|
|
|
|
|
|
|
def set_name(self, new_name: str) -> None:
|
|
|
|
|
self.name = new_name
|
|
|
|
|
|
2026-02-11 19:22:43 +01:00
|
|
|
def set_description(self, new_description: str | None) -> None:
|
2026-02-05 08:42:38 +01:00
|
|
|
self.description = new_description
|
2026-02-06 09:59:54 +01:00
|
|
|
|
|
|
|
|
def toDict(self) -> Dict[str, Any]:
|
|
|
|
|
return {
|
|
|
|
|
"id": self.id,
|
|
|
|
|
"name": self.name,
|
2026-02-11 19:22:43 +01:00
|
|
|
"description": self.description or None,
|
2026-02-06 09:59:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
def fromDict(data: Dict[str, Any]) -> Objective:
|
2026-02-11 19:22:43 +01:00
|
|
|
obj = Objective(data["name"], data["description"] or None)
|
2026-02-06 09:59:54 +01:00
|
|
|
obj.set_id(data["id"])
|
|
|
|
|
return obj
|