| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- """
- MySQL数据模型定义
- 提供MySQL数据库表的结构化模型定义
- """
- from typing import Optional, Dict, Any, List
- from dataclasses import dataclass
- from datetime import datetime
- @dataclass
- class UserModel:
- """用户模型"""
- id: Optional[int] = None
- name: str = ""
- email: str = ""
- age: int = 0
- created_at: Optional[datetime] = None
- updated_at: Optional[datetime] = None
- def to_dict(self) -> Dict[str, Any]:
- """转换为字典"""
- return {
- 'id': self.id,
- 'name': self.name,
- 'email': self.email,
- 'age': self.age,
- 'created_at': self.created_at.isoformat() if self.created_at else None,
- 'updated_at': self.updated_at.isoformat() if self.updated_at else None
- }
- @classmethod
- def from_dict(cls, data: Dict[str, Any]) -> 'UserModel':
- """从字典创建实例"""
- return cls(
- id=data.get('id'),
- name=data.get('name', ''),
- email=data.get('email', ''),
- age=data.get('age', 0),
- created_at=datetime.fromisoformat(data['created_at']) if data.get('created_at') else None,
- updated_at=datetime.fromisoformat(data['updated_at']) if data.get('updated_at') else None
- )
- @dataclass
- class TestTableModel:
- """测试表模型"""
- id: Optional[int] = None
- name: str = ""
- description: Optional[str] = None
- status: str = "active"
- created_at: Optional[datetime] = None
- def to_dict(self) -> Dict[str, Any]:
- """转换为字典"""
- return {
- 'id': self.id,
- 'name': self.name,
- 'description': self.description,
- 'status': self.status,
- 'created_at': self.created_at.isoformat() if self.created_at else None
- }
- @classmethod
- def from_dict(cls, data: Dict[str, Any]) -> 'TestTableModel':
- """从字典创建实例"""
- return cls(
- id=data.get('id'),
- name=data.get('name', ''),
- description=data.get('description'),
- status=data.get('status', 'active'),
- created_at=datetime.fromisoformat(data['created_at']) if data.get('created_at') else None
- )
- @dataclass
- class BasisOfPreparationModel:
- """编制依据模型"""
- id: Optional[int] = None
- title: str = ""
- content: Optional[str] = None
- category: Optional[str] = None
- status: str = "current"
- created_at: Optional[datetime] = None
- updated_at: Optional[datetime] = None
- def to_dict(self) -> Dict[str, Any]:
- """转换为字典"""
- return {
- 'id': self.id,
- 'title': self.title,
- 'content': self.content,
- 'category': self.category,
- 'status': self.status,
- 'created_at': self.created_at.isoformat() if self.created_at else None,
- 'updated_at': self.updated_at.isoformat() if self.updated_at else None
- }
- @classmethod
- def from_dict(cls, data: Dict[str, Any]) -> 'BasisOfPreparationModel':
- """从字典创建实例"""
- return cls(
- id=data.get('id'),
- title=data.get('title', ''),
- content=data.get('content'),
- category=data.get('category'),
- status=data.get('status', 'current'),
- created_at=datetime.fromisoformat(data['created_at']) if data.get('created_at') else None,
- updated_at=datetime.fromisoformat(data['updated_at']) if data.get('updated_at') else None
- )
- __all__ = [
- "UserModel",
- "TestTableModel",
- "BasisOfPreparationModel"
- ]
|