"""
Inventory Service Models Package

Import all models to ensure they are registered with SQLAlchemy Base.
"""

# Import AuditLog model for this service
from shared.security import create_audit_log_model
from shared.database.base import Base

# Create audit log model for this service
AuditLog = create_audit_log_model(Base)

# Import all models to register them with the Base metadata
from .inventory import (
    Ingredient,
    Stock,
    StockMovement,
    ProductTransformation,
    StockAlert,
    UnitOfMeasure,
    IngredientCategory,
    ProductCategory,
    ProductType,
    ProductionStage,
    StockMovementType,
)

from .food_safety import (
    FoodSafetyCompliance,
    TemperatureLog,
    FoodSafetyAlert,
    FoodSafetyStandard,
    ComplianceStatus,
    FoodSafetyAlertType,
)

from .stock_receipt import (
    StockReceipt,
    StockReceiptLineItem,
    StockLot,
    ReceiptStatus,
)

# List all models for easier access
__all__ = [
    # Inventory models
    "Ingredient",
    "Stock",
    "StockMovement",
    "ProductTransformation",
    "StockAlert",
    # Inventory enums
    "UnitOfMeasure",
    "IngredientCategory",
    "ProductCategory",
    "ProductType",
    "ProductionStage",
    "StockMovementType",
    # Food safety models
    "FoodSafetyCompliance",
    "TemperatureLog",
    "FoodSafetyAlert",
    # Food safety enums
    "FoodSafetyStandard",
    "ComplianceStatus",
    "FoodSafetyAlertType",
    # Stock receipt models
    "StockReceipt",
    "StockReceiptLineItem",
    "StockLot",
    "ReceiptStatus",
    "AuditLog",
]
