"""
Models 模組
匯出所有資料庫模型
"""
# 多租戶核心模型
from app.models.tenant import Tenant, TenantStatus
from app.models.system_function_cache import SystemFunctionCache
from app.models.system_function import SystemFunction
from app.models.personal_service import PersonalService

# HR 組織架構
from app.models.department import Department
from app.models.department_member import DepartmentMember

# HR 員工模型
from app.models.employee import Employee, EmployeeStatus
from app.models.emp_resume import EmpResume
from app.models.emp_setting import EmpSetting
from app.models.emp_personal_service_setting import EmpPersonalServiceSetting

# RBAC 權限系統
from app.models.role import UserRole, RoleRight, UserRoleAssignment

# 其他業務模型
from app.models.email_account import EmailAccount
from app.models.network_drive import NetworkDrive
from app.models.permission import Permission
from app.models.audit_log import AuditLog
from app.models.batch_log import BatchLog

# 初始化系統
from app.models.installation import (
    InstallationSession,
    InstallationChecklistItem,
    InstallationChecklistResult,
    InstallationStep,
    InstallationLog,
    InstallationTenantInfo,
    InstallationDepartmentSetup,
    TemporaryPassword,
    InstallationAccessLog,
    InstallationEnvironmentConfig,
    InstallationSystemStatus
)

__all__ = [
    # 多租戶核心
    "Tenant",
    "TenantStatus",
    "SystemFunctionCache",
    "SystemFunction",
    "PersonalService",
    # 組織架構
    "Department",
    "DepartmentMember",
    # 員工模型
    "Employee",
    "EmployeeStatus",
    "EmpResume",
    "EmpSetting",
    "EmpPersonalServiceSetting",
    # RBAC 權限系統
    "UserRole",
    "RoleRight",
    "UserRoleAssignment",
    # 其他業務
    "EmailAccount",
    "NetworkDrive",
    "Permission",
    "AuditLog",
    "BatchLog",
    # 初始化系統
    "InstallationSession",
    "InstallationChecklistItem",
    "InstallationChecklistResult",
    "InstallationStep",
    "InstallationLog",
    "InstallationTenantInfo",
    "InstallationDepartmentSetup",
    "TemporaryPassword",
    "InstallationAccessLog",
    "InstallationEnvironmentConfig",
    "InstallationSystemStatus",
]
