from __future__ import annotations from typing import Literal from pydantic import BaseModel, Field, HttpUrl class CardRenderRequest(BaseModel): template: str = Field(default="nova-artwork-v1") width: int = Field(default=1200, ge=100, le=4000) height: int = Field(default=630, ge=100, le=4000) output: Literal["png", "jpeg", "jpg", "webp"] = "webp" quality: int = Field(default=90, ge=1, le=100) image_url: HttpUrl title: str | None = None subtitle: str | None = None username: str | None = None category: str | None = None tags: list[str] = [] show_logo: bool = True show_avatar: bool = False avatar_url: HttpUrl | None = None theme: Literal["dark", "light", "nova"] = "dark" class CardMetaResponse(BaseModel): template: str width: int height: int crop_box: list[int] safe_area: dict theme: str