from dataclasses import dataclass
from typing import Generic, TypeVar

T = TypeVar("T")


@dataclass
class ObjectResponse(Generic[T]):
    content: T


@dataclass
class ObjectListResponse(Generic[T]):
    content: list[T]


@dataclass
class PaginationMeta:
    page: int
    page_count: int


@dataclass
class PaginatedObjectListResponse(Generic[T]):
    content: list[T]
    meta: PaginationMeta
