import z from 'zod' import { createFileRoute, redirect } from '@tanstack/react-router' import { useAuthStore } from '@/stores/auth-store' import { ROLE } from '@/lib/roles' import { Channels } from '@/features/channels' const channelsSearchSchema = z.object({ page: z.number().optional().catch(1), pageSize: z.number().optional().catch(10), filter: z.string().optional().catch(''), status: z.array(z.string()).optional().catch([]), type: z.array(z.string()).optional().catch([]), group: z.array(z.string()).optional().catch([]), model: z.string().optional().catch(''), }) export const Route = createFileRoute('/_authenticated/channels/')({ beforeLoad: () => { const { auth } = useAuthStore.getState() if (!auth.user || auth.user.role < ROLE.ADMIN) { throw redirect({ to: '/403', }) } }, validateSearch: channelsSearchSchema, component: Channels, })