TellmeStpToGlb/core/models.py
root 5102bd57e8 feat: 服务化改造STP到GLB转换器
- 🚀 新增FastAPI Web服务支持
-  实现异步任务处理和并发转换
- 📊 添加实时进度追踪(0-100%)
- 🏗️ 重构为模块化架构:core/api/services/utils
- 🔧 完整的任务管理系统和状态追踪
- 📖 自动生成API文档(Swagger/ReDoc)
- 🔄 保持CLI模式100%向后兼容
- 🛡️ 增强错误处理和文件验证
- 📝 更新完整文档(README/CLAUDE.md)

技术栈: FastAPI + uvicorn + pydantic + asyncio
API端点: /health, /api/v1/convert, /api/v1/status, /api/v1/tasks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 09:44:43 +08:00

44 lines
990 B
Python

#!/usr/bin/env python3
"""
核心数据模型定义
"""
from enum import Enum
from dataclasses import dataclass
from typing import Optional
from datetime import datetime
class TaskStatus(Enum):
"""任务状态枚举"""
PENDING = "pending"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
@dataclass
class ConvertOptions:
"""转换选项"""
auto_scale: bool = True
auto_center: bool = True
@dataclass
class ConvertTask:
"""转换任务"""
task_id: str
input_path: str
output_path: str
options: ConvertOptions
status: TaskStatus = TaskStatus.PENDING
progress: int = 0
message: str = ""
created_at: datetime = None
started_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
error_message: Optional[str] = None
def __post_init__(self):
if self.created_at is None:
self.created_at = datetime.now()