中文汉化
Deploy to Staging / deploy (push) Has been cancelled
Conflict detector / main (push) Has been cancelled
Lint Backend / lint-backend (push) Has been cancelled
Playwright Tests / changes (push) Has been cancelled
Test Backend / test-backend (push) Has been cancelled
Test Docker Compose / test-docker-compose (push) Has been cancelled
Playwright Tests / test-playwright (1, 4) (push) Has been cancelled
Playwright Tests / test-playwright (2, 4) (push) Has been cancelled
Playwright Tests / test-playwright (3, 4) (push) Has been cancelled
Playwright Tests / test-playwright (4, 4) (push) Has been cancelled
Playwright Tests / merge-playwright-reports (push) Has been cancelled
Playwright Tests / alls-green-playwright (push) Has been cancelled
Issue Manager / issue-manager (push) Has been cancelled

This commit is contained in:
z66
2025-12-18 09:40:41 +08:00
parent 6a91475bf6
commit db867dcbe5
41 changed files with 671 additions and 666 deletions
+13 -13
View File
@@ -4,7 +4,7 @@ from pydantic import EmailStr
from sqlmodel import Field, Relationship, SQLModel
# Shared properties
# 共享属性
class UserBase(SQLModel):
email: EmailStr = Field(unique=True, index=True, max_length=255)
is_active: bool = True
@@ -12,7 +12,7 @@ class UserBase(SQLModel):
full_name: str | None = Field(default=None, max_length=255)
# Properties to receive via API on creation
# 创建用户时通过 API 接收的属性
class UserCreate(UserBase):
password: str = Field(min_length=8, max_length=128)
@@ -23,7 +23,7 @@ class UserRegister(SQLModel):
full_name: str | None = Field(default=None, max_length=255)
# Properties to receive via API on update, all are optional
# 更新用户时通过 API 接收的属性,所有字段均为可选
class UserUpdate(UserBase):
email: EmailStr | None = Field(default=None, max_length=255) # type: ignore
password: str | None = Field(default=None, min_length=8, max_length=128)
@@ -39,14 +39,14 @@ class UpdatePassword(SQLModel):
new_password: str = Field(min_length=8, max_length=128)
# Database model, database table inferred from class name
# 数据库模型,数据库表名从类名推断
class User(UserBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
hashed_password: str
items: list["Item"] = Relationship(back_populates="owner", cascade_delete=True)
# Properties to return via API, id is always required
# 通过 API 返回的属性,id 始终必填
class UserPublic(UserBase):
id: uuid.UUID
@@ -56,23 +56,23 @@ class UsersPublic(SQLModel):
count: int
# Shared properties
# 共享属性
class ItemBase(SQLModel):
title: str = Field(min_length=1, max_length=255)
description: str | None = Field(default=None, max_length=255)
# Properties to receive on item creation
# 创建 Item 时接收的属性
class ItemCreate(ItemBase):
pass
# Properties to receive on item update
# 更新 Item 时接收的属性
class ItemUpdate(ItemBase):
title: str | None = Field(default=None, min_length=1, max_length=255) # type: ignore
# Database model, database table inferred from class name
# 数据库模型,数据库表名从类名推断
class Item(ItemBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
owner_id: uuid.UUID = Field(
@@ -81,7 +81,7 @@ class Item(ItemBase, table=True):
owner: User | None = Relationship(back_populates="items")
# Properties to return via API, id is always required
# 通过 API 返回的属性,id 始终必填
class ItemPublic(ItemBase):
id: uuid.UUID
owner_id: uuid.UUID
@@ -92,18 +92,18 @@ class ItemsPublic(SQLModel):
count: int
# Generic message
# 通用消息
class Message(SQLModel):
message: str
# JSON payload containing access token
# 包含访问令牌的 JSON 载荷
class Token(SQLModel):
access_token: str
token_type: str = "bearer"
# Contents of JWT token
# JWT 令牌内容
class TokenPayload(SQLModel):
sub: str | None = None