"""Core SQLAlchemy models."""

from .base import BaseModel, SoftDeleteMixin, AuditMixin
from .asset import Asset, AssetType, AssetStatus
from .machine import MachineType
from .vendor import Vendor
from .model import Model
from .businessunit import BusinessUnit
from .dashboarddefault import DashboardDefault
from .location import Location, LocationType
from .operatingsystem import OperatingSystem
from .relationship import AssetRelationship, RelationshipType
from .communication import Communication, CommunicationType
from .user import User, Role, Permission
from .application import Application, AppVersion, AppOwner, SupportTeam
from .setting import Setting
from .auditlog import AuditLog
from .customfield import CustomField, CustomFieldValue

__all__ = [
    # Base
    'BaseModel',
    'SoftDeleteMixin',
    'AuditMixin',
    # Asset (new architecture)
    'Asset',
    'AssetType',
    'AssetStatus',
    # Legacy machine type lookup (still referenced by models.machinetypeid)
    'MachineType',
    # Reference
    'Vendor',
    'Model',
    'BusinessUnit',
    'DashboardDefault',
    'Location',
    'LocationType',
    'OperatingSystem',
    # Relationships
    'AssetRelationship',
    'RelationshipType',
    # Communication
    'Communication',
    'CommunicationType',
    # Auth
    'User',
    'Role',
    'Permission',
    # Applications
    'Application',
    'AppVersion',
    'AppOwner',
    'SupportTeam',
    # Knowledge Base
    # Settings
    'Setting',
    # Audit
    'AuditLog',
    # Custom fields
    'CustomField',
    'CustomFieldValue',
]
