"""
Core Models - GMAO Collège
Import tous les modèles du core
"""
from .user import User, Staff
from .college import College, Site, Building, HousingUnit, HousingOccupancy, Room, RoomType, RoomProfile, RoomProfileItem, RoomSurface, RoomSchedule, Zone
from .equipment import EquipmentCategory, Equipment, EquipmentDocument, EquipmentRoomHistory, EquipmentQuantityMovement, EquipmentLifecycleEvent
from .maintenance import (
    Intervention, StatusChange, InterventionComment, InterventionDocument,
    InterventionPart, Lot, LotTask, LotService, WorkRequest, WorkRequestQuote, WorkRequestEvent
)
from .company import Company, Part, PartStockMovement, Alert, Service
from .planning import (
    WorkSchedule, WorkScheduleTemplate, AnnualTimeConfig, TimeEntry, CollegeClosure, ClosureSchedule, ClosureWorkDay, PersonalLeave, Training, TrainingParticipant,
    Meter, MeterReading, MeterReadingCorrection, MeterReadingSchedule, MeterReadingOccurrence,
    MeterReadingRound, MeterReadingRoundMember, MeterReadingRoundOccurrence,
    MeterHeatingRegime, MeterAlertRule, MeterAlert, MeterAlertEvidence, GasConversion, MeterTariff,
    Consumable, ConsumableUsage, EquipmentConsumable,
    PreventiveTask, PreventiveTaskConsumable, ScheduledTask, TaskExecutionSegment,
    TechnicianAvailability, AdminTask, ZoneAccessRule
)
from .c4 import PhotocopierContract, PhotocopierContractPeriod, ContractEquipmentAssignment, ConsumableOrder, ConsumableReceipt
from .settings import AppSettings
from .audit import AuditLog, TemplateAuditMark
from .prevention import PreventionWorkLog, StaffAuthorization, RiskAssessment, PreventionAction, SafetyRegisterEntry
from .cleaning import (
    ProductCategory, ProductGeneric, CommercialProduct, ProductPackaging,
    StockLocation, StockLot, StockLotBalance, StockMovement,
    MaterialAssignment, ReusableContainer, ContainerFill, ProductDocument,
    RequestProfile, RequestProfileItem, StockInventory, StockInventoryLine,
    CleaningForecastConfig,
)
from .rbac import Role, Permission, UserRole, RolePermission, UserPermission

__all__ = [
    'User', 'Staff',
    'College', 'Site', 'Building', 'HousingUnit', 'HousingOccupancy', 'Room', 'RoomType', 'RoomProfile', 'RoomProfileItem', 'RoomSurface', 'RoomSchedule', 'Zone',
    'EquipmentCategory', 'Equipment', 'EquipmentDocument', 'EquipmentRoomHistory', 'EquipmentQuantityMovement', 'EquipmentLifecycleEvent',
    'Intervention', 'StatusChange', 'InterventionComment', 'InterventionDocument',
    'Lot', 'LotTask', 'LotService', 'WorkRequest', 'WorkRequestQuote', 'WorkRequestEvent',
    'Company', 'Part', 'PartStockMovement', 'InterventionPart', 'Alert', 'Service',
    'WorkSchedule', 'WorkScheduleTemplate', 'AnnualTimeConfig', 'TimeEntry', 'CollegeClosure', 'ClosureSchedule', 'ClosureWorkDay', 'PersonalLeave', 'Training', 'TrainingParticipant',
    'Meter', 'MeterReading', 'MeterReadingCorrection', 'MeterReadingSchedule', 'MeterReadingOccurrence',
    'MeterReadingRound', 'MeterReadingRoundMember', 'MeterReadingRoundOccurrence',
    'MeterHeatingRegime', 'MeterAlertRule', 'MeterAlert', 'MeterAlertEvidence', 'GasConversion', 'MeterTariff',
    'Consumable', 'ConsumableUsage', 'EquipmentConsumable',
    'PreventiveTask', 'PreventiveTaskConsumable', 'ScheduledTask', 'TaskExecutionSegment',
    'TechnicianAvailability', 'AdminTask', 'ZoneAccessRule',
    'AppSettings', 'AuditLog', 'TemplateAuditMark',
    'PreventionWorkLog', 'StaffAuthorization', 'RiskAssessment', 'PreventionAction', 'SafetyRegisterEntry',
    'ProductCategory', 'ProductGeneric', 'CommercialProduct', 'ProductPackaging',
    'StockLocation', 'StockLot', 'StockLotBalance', 'StockMovement',
    'MaterialAssignment', 'ReusableContainer', 'ContainerFill', 'ProductDocument',
    'RequestProfile', 'RequestProfileItem', 'StockInventory', 'StockInventoryLine',
    'CleaningForecastConfig',
    'Role', 'Permission', 'UserRole', 'RolePermission', 'UserPermission',
    'PhotocopierContract', 'PhotocopierContractPeriod', 'ContractEquipmentAssignment', 'ConsumableOrder', 'ConsumableReceipt',
]
