Quizard/modules/task/factory/metadata.py
2025-04-18 21:56:38 +03:00

25 lines
704 B
Python

import uuid
from dataclasses import dataclass, field
from typing import Generic
from option import NONE, Option
from modules.utils.types import C, V
@dataclass(frozen=True)
class QTaskFactoryMetadata(Generic[C, V]):
name: Option[str] = field(default=Option[str].maybe(None))
description: Option[str] = field(default=Option[str].maybe(None))
id: uuid.UUID = field(default_factory=uuid.uuid4)
@staticmethod
def from_values(
name: str | None = None,
description: str | None = None,
) -> "QTaskFactoryMetadata[C, V]":
return QTaskFactoryMetadata(
name=Option[str].maybe(name),
description=Option[str].maybe(description),
)