43 lines
778 B
Python
43 lines
778 B
Python
from datetime import timedelta
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class Entry:
|
|
id: int
|
|
text: str
|
|
html: str | None = None
|
|
|
|
|
|
@dataclass
|
|
class Sequence:
|
|
position: int
|
|
entry: Entry
|
|
duration: timedelta | None
|
|
|
|
|
|
@dataclass
|
|
class Order:
|
|
id: int
|
|
title: str
|
|
sequence_entries: list[Sequence]
|
|
|
|
|
|
@dataclass
|
|
class PublicationProfile:
|
|
id: int
|
|
title: str
|
|
description: str
|
|
|
|
|
|
@dataclass
|
|
class Publication:
|
|
id: int
|
|
title: str
|
|
description: str
|
|
by_line: str
|
|
orders: list[Order] = field(default_factory=list)
|
|
|
|
# Rather than using a subclass I think this makes sense
|
|
def to_profile(self) -> PublicationProfile:
|
|
return PublicationProfile(id=self.id, title=self.title, description=self.description)
|