blackopsrepl's picture
feat!: add constraint analyzer service and refactor all systems
2004c79
"""
Timetable constraint solver module.
This module contains the domain models, constraints, and solver logic
for employee scheduling optimization.
"""
try:
from .domain import (
Employee,
Task,
EmployeeSchedule,
ScheduleInfo,
)
from .solver import solver_manager, solution_manager
from .constraints import (
get_slot_overlap,
get_slot_date,
tasks_violate_sequence_order,
define_constraints,
)
_TIMEFOLD_AVAILABLE = True
except ImportError as e:
# Handle missing timefold dependency gracefully
_TIMEFOLD_AVAILABLE = False
Employee = None
Task = None
EmployeeSchedule = None
ScheduleInfo = None
solver_manager = None
solution_manager = None
get_slot_overlap = None
get_slot_date = None
tasks_violate_sequence_order = None
define_constraints = None
__all__ = [
# Domain models
"Employee",
"Task",
"EmployeeSchedule",
"ScheduleInfo",
# Solver managers
"solver_manager",
"solution_manager",
# Constraint functions
"get_slot_overlap",
"get_slot_date",
"tasks_violate_sequence_order",
"define_constraints",
]