feat: LlmDemoModel示例数据增删改查

This commit is contained in:
martsforever
2026-04-01 21:55:31 +08:00
parent 978da7dd40
commit b2f04bc0f4
4 changed files with 120 additions and 131 deletions
+18 -12
View File
@@ -4,31 +4,37 @@ from decimal import Decimal
from typing import List
from fastapi import FastAPI, APIRouter, HTTPException
from pydantic import BaseModel
from pydantic import BaseModel, ConfigDict
from sqlmodel import SQLModel, Field, select
from app.utils.model_utils import to_camel, format_datetime_to_string, format_date_to_string, FormattedDatetime, FormattedDate, current_datetime
from app.utils.mysql_utils import AsyncSessionDep
# 定义北京时区(UTC+8
beijing_timezone = timezone(timedelta(hours=8))
# 定义获取当前北京时区时间的匿名函数,用于默认值生成
current_datetime = lambda: datetime.now(beijing_timezone)
class LlmDemoModel(SQLModel, table=True):
# Pydantic V2 的模型配置
model_config = ConfigDict(
alias_generator=to_camel, # 使用 to_camel 函数生成别名
populate_by_name=True, # 允许通过原始字段名(snake_case)赋值
extra='ignore', # 忽略模型中未定义的额外字段,避免验证失败
json_encoders={
datetime: format_datetime_to_string, # 为 datetime 类型指定自定义的 JSON 编码器
date: format_date_to_string # 为 date 类型指定自定义的 JSON 编码器
}
)
__tablename__ = "llm_demo"
id: str = Field(default=None, primary_key=True, description="唯一标识,编号")
created_at: datetime = Field(default_factory=current_datetime, description="创建时间")
updated_at: datetime = Field(default_factory=current_datetime, description="更新时间")
created_at: FormattedDatetime = Field(default_factory=current_datetime, description="创建时间")
updated_at: FormattedDatetime = Field(default_factory=current_datetime, description="更新时间")
created_by: str | None = Field(default=None, description="创建人id")
updated_by: str | None = Field(default=None, description="更新人id")
full_name: str = Field(default=None, description="用户名称")
datetime_start: datetime = Field(default=None, description="开通会员时间")
datetime_end: datetime = Field(default=None, description="会员截止到期时间")
birthday: date = Field(default=None, description="生日")
datetime_start: FormattedDatetime = Field(default=None, description="开通会员时间")
datetime_end: FormattedDatetime = Field(default=None, description="会员截止到期时间")
birthday: FormattedDate = Field(default=None, description="生日")
amount: Decimal = Field(default=0, description="金额")