Files
2026-08-26 14:11:37 +07:00

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)