39 lines
1005 B
Python
39 lines
1005 B
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from src.db.models.comic import Issue
|
|
|
|
|
|
class IssueResponse(BaseModel):
|
|
id: str
|
|
created_date: datetime
|
|
last_modified_date: datetime
|
|
version: int
|
|
issue_number: str
|
|
title: Optional[str]
|
|
published_on: Optional[datetime]
|
|
in_stock: bool
|
|
is_read: bool
|
|
comic_id: str
|
|
volume_id: Optional[str]
|
|
story_arc_id: Optional[str]
|
|
|
|
def issue_to_response(issue: Issue) -> IssueResponse:
|
|
response: IssueResponse = IssueResponse(
|
|
id=issue.id,
|
|
created_date=issue.created_date,
|
|
last_modified_date=issue.last_modified_date,
|
|
version=issue.version,
|
|
issue_number=issue.issue_number,
|
|
title=issue.title,
|
|
published_on=issue.published_on,
|
|
in_stock=issue.in_stock,
|
|
is_read=issue.is_read,
|
|
comic_id=issue.comic_id,
|
|
volume_id=issue.volume_id,
|
|
story_arc_id=issue.story_arc_id
|
|
)
|
|
return response
|