60 lines
2.4 KiB
Python
60 lines
2.4 KiB
Python
from sqlalchemy import Column, Integer, String, Float, Boolean, DateTime
|
|
from datetime import datetime
|
|
from database import Base
|
|
|
|
class AuditRecord(Base):
|
|
__tablename__ = "audit_records"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
filename = Column(String, index=True, unique=True)
|
|
file_size = Column(Integer)
|
|
file_date = Column(String) # Stored as formatted string for simplicity: '%d/%m/%Y %H:%M'
|
|
|
|
hostname = Column(String, index=True)
|
|
ip_address = Column(String, index=True)
|
|
os_name = Column(String, index=True)
|
|
|
|
compliance_percentage = Column(Float, default=0.0)
|
|
passed_count = Column(Integer, default=0)
|
|
failed_count = Column(Integer, default=0)
|
|
total_checks = Column(Integer, default=0)
|
|
|
|
mandatory_passed = Column(Integer, default=0)
|
|
mandatory_failed = Column(Integer, default=0)
|
|
mandatory_total = Column(Integer, default=0)
|
|
mandatory_percentage = Column(Float, default=0.0)
|
|
|
|
optional_passed = Column(Integer, default=0)
|
|
optional_failed = Column(Integer, default=0)
|
|
optional_total = Column(Integer, default=0)
|
|
|
|
has_txt = Column(Boolean, default=False)
|
|
txt_filename = Column(String, default="")
|
|
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
|
|
|
|
class UserEmailRecord(Base):
|
|
"""Lưu trữ email người dùng (@vnpt.vn) và thống kê số file đã upload."""
|
|
__tablename__ = "user_email_records"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
email = Column(String, index=True, unique=True) # email @vnpt.vn (unique per user)
|
|
display_name = Column(String, default="") # phần trước @, dùng để hiển thị
|
|
total_uploads = Column(Integer, default=0) # tổng số lần upload (batch)
|
|
total_files = Column(Integer, default=0) # tổng số file đã xử lý
|
|
first_seen = Column(DateTime, default=datetime.utcnow)
|
|
last_seen = Column(DateTime, default=datetime.utcnow)
|
|
|
|
class UserFileRecord(Base):
|
|
"""Lưu vết các file thuộc quyền sở hữu của user (đã đăng nhập)."""
|
|
__tablename__ = "user_file_records"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
filename = Column(String, index=True)
|
|
username = Column(String, index=True)
|
|
unit_id = Column(String, index=True)
|
|
unit_name = Column(String, index=True)
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
|