51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
|
|
"""
|
||
|
|
文档模型
|
||
|
|
"""
|
||
|
|
from datetime import datetime
|
||
|
|
from typing import Dict, Any
|
||
|
|
|
||
|
|
|
||
|
|
class Document:
|
||
|
|
"""文档数据模型"""
|
||
|
|
|
||
|
|
def __init__(self, name: str, doc_type: str, size: str = "0 KB"):
|
||
|
|
"""
|
||
|
|
初始化文档
|
||
|
|
|
||
|
|
Args:
|
||
|
|
name: 文档名称
|
||
|
|
doc_type: 文档类型
|
||
|
|
size: 文件大小
|
||
|
|
"""
|
||
|
|
self.name = name
|
||
|
|
self.doc_type = doc_type
|
||
|
|
self.size = size
|
||
|
|
self.created_at = datetime.now()
|
||
|
|
self.icon = self._get_icon()
|
||
|
|
|
||
|
|
def _get_icon(self) -> str:
|
||
|
|
"""根据文档类型获取图标"""
|
||
|
|
icon_map = {
|
||
|
|
'SRS': '📄',
|
||
|
|
'功能设计': '📋',
|
||
|
|
'概要设计': '🏗️',
|
||
|
|
'详细设计': '📐',
|
||
|
|
'API': '📖',
|
||
|
|
'数据库': '🗄️',
|
||
|
|
'测试': '✅',
|
||
|
|
'用户手册': '📚'
|
||
|
|
}
|
||
|
|
return icon_map.get(self.doc_type, '📄')
|
||
|
|
|
||
|
|
def to_dict(self) -> Dict[str, Any]:
|
||
|
|
"""转换为字典"""
|
||
|
|
return {
|
||
|
|
'name': self.name,
|
||
|
|
'type': self.doc_type,
|
||
|
|
'size': self.size,
|
||
|
|
'created_at': self.created_at.strftime('%Y-%m-%d %H:%M')
|
||
|
|
}
|
||
|
|
|
||
|
|
def __str__(self) -> str:
|
||
|
|
return f"{self.icon} {self.name}"
|