blackopsrepl's picture
feat!: add constraint analyzer service and refactor all systems
2004c79
raw
history blame
1.2 kB
"""
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",
]