Initial commit: snapAna 截图智能整理工具
包含 FastAPI 后端、React 前端、队列/OCR/标签/待办等完整功能。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
"""截图相关的请求/响应模型。"""
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class TagOut(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
color: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class CategoryOut(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
color: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ScreenshotBrief(BaseModel):
|
||||
"""卡片列表用:尽量精简。"""
|
||||
|
||||
id: int
|
||||
path: str
|
||||
width: int
|
||||
height: int
|
||||
captured_at: datetime
|
||||
thumb_url: Optional[str] = None
|
||||
ai_title: Optional[str] = None
|
||||
ai_status: str
|
||||
ocr_status: str
|
||||
is_favorite: bool = False
|
||||
category: Optional[CategoryOut] = None
|
||||
tags: list[TagOut] = []
|
||||
|
||||
|
||||
class TodoBrief(BaseModel):
|
||||
id: int
|
||||
title: str
|
||||
note: Optional[str] = None
|
||||
kind: Optional[str] = None
|
||||
status: str
|
||||
created_at: datetime
|
||||
completed_at: Optional[datetime] = None
|
||||
screenshot_id: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class TodoListResp(BaseModel):
|
||||
items: list[TodoBrief]
|
||||
total: int
|
||||
page: int
|
||||
size: int
|
||||
|
||||
|
||||
class ScreenshotDetail(ScreenshotBrief):
|
||||
"""详情页用:含 OCR 与 AI 文本。"""
|
||||
|
||||
file_url: str
|
||||
size: int
|
||||
ocr_text: Optional[str] = None
|
||||
ai_summary: Optional[str] = None
|
||||
ai_suggestion: Optional[str] = None
|
||||
todos: list[TodoBrief] = []
|
||||
|
||||
|
||||
class ScreenshotListResp(BaseModel):
|
||||
items: list[ScreenshotBrief]
|
||||
total: int
|
||||
page: int
|
||||
size: int
|
||||
|
||||
|
||||
class ScreenshotUpdate(BaseModel):
|
||||
"""前端更新可写字段。"""
|
||||
|
||||
category_id: Optional[int] = None
|
||||
is_favorite: Optional[bool] = None
|
||||
is_hidden: Optional[bool] = None
|
||||
tags: Optional[list[str]] = Field(default=None, description="标签名列表,自动新建")
|
||||
Reference in New Issue
Block a user