feat: enrich assignable-persons with tags, preferences, availability and cascading filters

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-10 22:05:02 +02:00
parent 9e4e0c3d4b
commit 04ceecc51d
5 changed files with 540 additions and 141 deletions

View File

@@ -2,7 +2,7 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/vue-query'
import type { MaybeRef, Ref } from 'vue'
import { unref } from 'vue'
import { apiClient } from '@/lib/axios'
import type { AssignablePerson, ShiftAssignment } from '@/types/shiftAssignment'
import type { AssignablePerson, AssignablePersonsMeta, ShiftAssignment } from '@/types/shiftAssignment'
interface ApiResponse<T> {
success: boolean
@@ -151,11 +151,14 @@ export function useAssignablePersons(eventId: MaybeRef<string>, shiftId: MaybeRe
return useQuery({
queryKey: ['assignable-persons', eventId, shiftId],
queryFn: async () => {
const { data } = await apiClient.get<{ data: AssignablePerson[] }>(
const { data } = await apiClient.get<{ data: AssignablePerson[]; meta: AssignablePersonsMeta }>(
`/events/${unref(eventId)}/shifts/${unref(shiftId)}/assignable-persons`,
)
return data.data
return {
persons: data.data,
meta: data.meta,
}
},
enabled: () => !!unref(eventId) && !!unref(shiftId),
})