30 行
599 B
Python
30 行
599 B
Python
from __future__ import annotations
|
|
from pydantic import BaseModel
|
|
from typing import Any
|
|
|
|
|
|
class BlogSchema(BaseModel):
|
|
title: str
|
|
slug: str
|
|
cover_image: str | None = None
|
|
summary: str | None = None
|
|
content: str | None = None
|
|
author: str | None = None
|
|
category: str | None = None
|
|
tags: list[str] = []
|
|
published_at: str | None = None
|
|
is_visible: bool = True
|
|
|
|
|
|
class BlogResponse(BlogSchema):
|
|
id: int
|
|
sort_order: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class BlogListResponse(BaseModel):
|
|
items: list[BlogResponse]
|
|
total: int
|