from datetime import datetime
from typing import Optional

from pydantic import BaseModel

from src.db.models.comic import Publisher


class PublisherResponse(BaseModel):
    id: str
    created_date: datetime
    last_modified_date: datetime
    version: int
    name: str
    weblink: Optional[str]
    parent_publisher_id: Optional[str]


def publisher_to_response(publisher:  Publisher) -> PublisherResponse:
    response: PublisherResponse = PublisherResponse(
            id=publisher.id,
            created_date=publisher.created_date,
            last_modified_date=publisher.last_modified_date,
            version=publisher.version,
            name=publisher.name,
            weblink=publisher.weblink,
            parent_publisher_id=publisher.parent_publisher_id
    )
    return response

