Skip to content

Implement Interview Slot Conflict Validation #1689

@Abi107717

Description

@Abi107717

Description

Context Professors create interview slots for job positions. Currently, there is no validation to prevent creating new slots that overlap with existing ones for the same interview process, which can lead to scheduling conflicts.

Goal Implement server-side validation to detect overlapping slots during creation and provide visual feedback in the UI so users can resolve these conflicts.

Tasks

Server Validation

  • Extend POST /api/interviews/processes/{processId}/slots/create to validate proposed slots against existing ones.
  • If conflicts are found, return 409 Conflict with a detailed list of conflicts (not just a generic error).
  • Create SlotConflictDTO to structure the conflict data (proposed slot vs. existing conflicting slot).

Client:

  • In SlotCreationFormComponent, catch the 409 error and parse the conflict list.
  • In DateSlotCardComponent, highlight the conflicting slots (e.g., red border).
  • Display a tooltip or error message showing the time range of the existing conflicting slot (e.g., "Conflicts with existing slot 10:00 - 10:30").

Acceptance Criteria

  • Attempting to create an overlapping slot returns a 409 status.
  • The UI keeps the form open and highlights the conflicting slots.
  • The user can adjust the time and retry saving successfully.

Metadata

Metadata

Assignees

Labels

taskTasks related to TumApply which are not whole features

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions