refactor: complete V1 to V2 migration and remove legacy architecture
Remove all V1 architecture components and promote V2 to primary: - Delete all paddle_ocr_* table models (export, ocr, translation, user) - Delete legacy routers (auth, export, ocr, translation) - Delete legacy schemas and services - Promote user_v2.py to user.py as primary user model - Update all imports and dependencies to use V2 models only - Update main.py version to 2.0.0 Database changes: - Fix SQLAlchemy reserved word: rename audit_log.metadata to extra_data - Add migration to drop all paddle_ocr_* tables - Update alembic env to only import V2 models Frontend fixes: - Fix Select component exports in TaskHistoryPage.tsx - Update to use simplified Select API with options prop - Fix AxiosInstance TypeScript import syntax 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -10,8 +10,8 @@ from fastapi import APIRouter, Depends, HTTPException, status, Query
|
||||
from fastapi.responses import FileResponse
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.deps import get_db, get_current_user_v2
|
||||
from app.models.user_v2 import User
|
||||
from app.core.deps import get_db, get_current_user
|
||||
from app.models.user import User
|
||||
from app.models.task import TaskStatus
|
||||
from app.schemas.task import (
|
||||
TaskCreate,
|
||||
@@ -34,7 +34,7 @@ router = APIRouter(prefix="/api/v2/tasks", tags=["Tasks"])
|
||||
async def create_task(
|
||||
task_data: TaskCreate,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Create a new OCR task
|
||||
@@ -72,7 +72,7 @@ async def list_tasks(
|
||||
order_by: str = Query("created_at"),
|
||||
order_desc: bool = Query(True),
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
List user's tasks with pagination and filtering
|
||||
@@ -134,7 +134,7 @@ async def list_tasks(
|
||||
@router.get("/stats", response_model=TaskStatsResponse)
|
||||
async def get_task_stats(
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Get task statistics for current user
|
||||
@@ -157,7 +157,7 @@ async def get_task_stats(
|
||||
async def get_task(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Get task details by ID
|
||||
@@ -184,7 +184,7 @@ async def update_task(
|
||||
task_id: str,
|
||||
task_update: TaskUpdate,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Update task status and results
|
||||
@@ -253,7 +253,7 @@ async def update_task(
|
||||
async def delete_task(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Delete a task
|
||||
@@ -280,7 +280,7 @@ async def delete_task(
|
||||
async def download_json(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Download task result as JSON file
|
||||
@@ -327,7 +327,7 @@ async def download_json(
|
||||
async def download_markdown(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Download task result as Markdown file
|
||||
@@ -374,7 +374,7 @@ async def download_markdown(
|
||||
async def download_pdf(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Download task result as searchable PDF file
|
||||
@@ -421,7 +421,7 @@ async def download_pdf(
|
||||
async def start_task(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Start processing a pending task
|
||||
@@ -459,7 +459,7 @@ async def start_task(
|
||||
async def cancel_task(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Cancel a pending or processing task
|
||||
@@ -513,7 +513,7 @@ async def cancel_task(
|
||||
async def retry_task(
|
||||
task_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user_v2)
|
||||
current_user: User = Depends(get_current_user)
|
||||
):
|
||||
"""
|
||||
Retry a failed task
|
||||
|
||||
Reference in New Issue
Block a user