""" 项目模型 """ from datetime import datetime from typing import List, Dict, Any from .requirement import Requirement from .module import Module from .document import Document class Project: """项目数据模型""" def __init__(self, name: str, description: str = "", status: str = "进行中"): """ 初始化项目 Args: name: 项目名称 description: 项目描述 status: 项目状态 (进行中/已完成/已暂停) """ self.name = name self.description = description self.status = status self.created_at = datetime.now() self.requirements: List[Requirement] = [] self.modules: List[Module] = [] self.documents: List[Document] = [] self.original_requirement = "" self.project_type = "Java Spring Boot" def add_requirement(self, requirement: Requirement): """添加需求""" self.requirements.append(requirement) def add_module(self, module: Module): """添加模块""" self.modules.append(module) def add_document(self, document: Document): """添加文档""" self.documents.append(document) def get_requirement_count(self) -> int: """获取需求数量""" return len(self.requirements) def get_module_count(self) -> int: """获取模块数量""" return len(self.modules) def get_document_count(self) -> int: """获取文档数量""" return len(self.documents) def to_dict(self) -> Dict[str, Any]: """转换为字典""" return { 'name': self.name, 'description': self.description, 'status': self.status, 'created_at': self.created_at.strftime('%Y-%m-%d %H:%M'), 'requirements': [r.to_dict() for r in self.requirements], 'modules': [m.to_dict() for m in self.modules], 'documents': [d.to_dict() for d in self.documents], 'project_type': self.project_type } def __str__(self) -> str: return f"Project: {self.name} ({self.status})"