| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- PostgreSQL数据模型定义
- 提供PostgreSQL数据库表的结构化模型定义
- """
- from typing import Optional, Dict, Any, List
- from dataclasses import dataclass
- from datetime import datetime
- @dataclass
- class PGUserModel:
- """PostgreSQL用户模型"""
- id: Optional[int] = None
- username: str = ""
- email: str = ""
- role: str = "user"
- is_active: bool = True
- created_at: Optional[datetime] = None
- updated_at: Optional[datetime] = None
- def to_dict(self) -> Dict[str, Any]:
- """转换为字典"""
- return {
- 'id': self.id,
- 'username': self.username,
- 'email': self.email,
- 'role': self.role,
- 'is_active': self.is_active,
- '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]) -> 'PGUserModel':
- """从字典创建实例"""
- return cls(
- id=data.get('id'),
- username=data.get('username', ''),
- email=data.get('email', ''),
- role=data.get('role', 'user'),
- is_active=data.get('is_active', True),
- 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__ = [
- "PGUserModel"
- ]
|