74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
# =============================================================================
|
||
# 企微IT智能服务台 — 设备清单模型
|
||
# =============================================================================
|
||
# 说明:存储从联软/火绒导出的设备清单,用于员工IT健康信息匹配
|
||
# =============================================================================
|
||
|
||
import uuid
|
||
from datetime import datetime
|
||
from typing import Optional
|
||
|
||
from sqlalchemy import DateTime, String, Text
|
||
from sqlalchemy.orm import Mapped, mapped_column
|
||
|
||
from app.database import Base
|
||
|
||
|
||
class DeviceInventory(Base):
|
||
"""设备清单模型 — 对应 device_inventory 表。
|
||
|
||
存储从联软/火绒导出的设备清单,包含:
|
||
- 计算机名
|
||
- IP 地址
|
||
- MAC 地址
|
||
- 员工账号(用于匹配)
|
||
- 数据来源(联软/火绒)
|
||
|
||
Attributes:
|
||
id: 记录唯一标识
|
||
computer_name: 计算机名
|
||
ip_address: IP 地址
|
||
mac_address: MAC 地址
|
||
employee_account: 员工账号(用于匹配)
|
||
employee_name: 员工姓名
|
||
department: 部门
|
||
source: 数据来源(lianruan/huorong)
|
||
asset_tag: 资产编号
|
||
created_at: 导入时间
|
||
updated_at: 更新时间
|
||
"""
|
||
|
||
__tablename__ = "device_inventory"
|
||
|
||
# 主键
|
||
id: Mapped[str] = mapped_column(
|
||
String(36),
|
||
primary_key=True,
|
||
default=lambda: str(uuid.uuid4()),
|
||
)
|
||
|
||
# 设备信息
|
||
computer_name: Mapped[str] = mapped_column(String(255), default="")
|
||
ip_address: Mapped[str] = mapped_column(String(64), default="")
|
||
mac_address: Mapped[str] = mapped_column(String(64), default="")
|
||
|
||
# 员工信息
|
||
employee_account: Mapped[str] = mapped_column(String(128), default="")
|
||
employee_name: Mapped[str] = mapped_column(String(128), default="")
|
||
department: Mapped[str] = mapped_column(String(255), default="")
|
||
|
||
# 元数据
|
||
source: Mapped[str] = mapped_column(String(32), default="") # lianruan / huorong
|
||
asset_tag: Mapped[str] = mapped_column(String(64), default="") # 资产编号
|
||
|
||
# 时间戳
|
||
created_at: Mapped[datetime] = mapped_column(
|
||
DateTime,
|
||
default=datetime.now,
|
||
)
|
||
updated_at: Mapped[datetime] = mapped_column(
|
||
DateTime,
|
||
default=datetime.now,
|
||
onupdate=datetime.now,
|
||
)
|