"""
lara_django_material models package.

This package contains all models organized into sub-modules:
- base: Abstract base classes (PartShapeAbstr, PartAbstr), ExtraData model, PartDeviceClass model
- parts: Part, PartShape, PartsSubset, OrderedPartsSubset
- devices: Device, DeviceShape, DevicesSubset, OrderedDevicesSubset
- device_setups: DeviceSetup, DeviceSetupShape, DeviceSetupsSubset,
  OrderedDeviceSetupsSubset
- labware: Labware, LabwareClass, LabwareShape, WellShape, LabwareSubset,
  OrderedLabwareSubset
"""

from django.conf import settings

from .base import ExtraData, PartAbstr, PartDeviceClass, PartShapeAbstr
from .device_setups import (
    DeviceSetup,
    DeviceSetupShape,
    DeviceSetupsSubset,
    OrderedDeviceSetupsSubset,
)
from .devices import Device, DeviceShape, DevicesSubset, OrderedDevicesSubset
from .labware import (
    Labware,
    LabwareClass,
    LabwareShape,
    LabwareSubset,
    OrderedLabwareSubset,
    WellShape,
)
from .parts import OrderedPartsSubset, Part, PartShape, PartsSubset

# Fixture settings
settings.FIXTURES += ["1_partdeviceclasses_fix", "2_labwareclasses_fix"]

__all__ = [
    "Device",
    "DeviceSetup",
    "DeviceSetupShape",
    "DeviceSetupsSubset",
    "DeviceShape",
    "DevicesSubset",
    "ExtraData",
    "Labware",
    "LabwareClass",
    "LabwareShape",
    "LabwareSubset",
    "OrderedDeviceSetupsSubset",
    "OrderedDevicesSubset",
    "OrderedLabwareSubset",
    "OrderedPartsSubset",
    "Part",
    "PartAbstr",
    "PartDeviceClass",
    "PartShape",
    "PartShapeAbstr",
    "PartsSubset",
    "WellShape",
]
