Add full-page student intake form matching Bayside paper forms

- Migration: student intake fields (health, academic, dismissal, agreement),
  student_guardians + student_curriculum_logins tables, extend authorized_pickups
  (alt_phone, notes, kind) with RLS mirroring existing policies
- New /students/new full-page multi-section form (replaces the add dialog)
- Students list links to the full page; regenerate Supabase types

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 22:21:38 -04:00
co-authored by Claude Opus 4.8
parent f509fa6528
commit cee27a6189
5 changed files with 663 additions and 58 deletions
+22
View File
@@ -20,6 +20,7 @@ import { Route as AuthenticatedDashboardRouteImport } from './routes/_authentica
import { Route as AuthenticatedCalendarRouteImport } from './routes/_authenticated/calendar'
import { Route as AuthenticatedAttendanceRouteImport } from './routes/_authenticated/attendance'
import { Route as AuthenticatedAdminRouteImport } from './routes/_authenticated/admin'
import { Route as AuthenticatedStudentsNewRouteImport } from './routes/_authenticated/students.new'
import { Route as AuthenticatedStudentsIdRouteImport } from './routes/_authenticated/students.$id'
const AuthRoute = AuthRouteImport.update({
@@ -76,6 +77,12 @@ const AuthenticatedAdminRoute = AuthenticatedAdminRouteImport.update({
path: '/admin',
getParentRoute: () => AuthenticatedRouteRoute,
} as any)
const AuthenticatedStudentsNewRoute =
AuthenticatedStudentsNewRouteImport.update({
id: '/new',
path: '/new',
getParentRoute: () => AuthenticatedStudentsRoute,
} as any)
const AuthenticatedStudentsIdRoute = AuthenticatedStudentsIdRouteImport.update({
id: '/$id',
path: '/$id',
@@ -94,6 +101,7 @@ export interface FileRoutesByFullPath {
'/messages': typeof AuthenticatedMessagesRoute
'/students': typeof AuthenticatedStudentsRouteWithChildren
'/students/$id': typeof AuthenticatedStudentsIdRoute
'/students/new': typeof AuthenticatedStudentsNewRoute
}
export interface FileRoutesByTo {
'/': typeof IndexRoute
@@ -107,6 +115,7 @@ export interface FileRoutesByTo {
'/messages': typeof AuthenticatedMessagesRoute
'/students': typeof AuthenticatedStudentsRouteWithChildren
'/students/$id': typeof AuthenticatedStudentsIdRoute
'/students/new': typeof AuthenticatedStudentsNewRoute
}
export interface FileRoutesById {
__root__: typeof rootRouteImport
@@ -122,6 +131,7 @@ export interface FileRoutesById {
'/_authenticated/messages': typeof AuthenticatedMessagesRoute
'/_authenticated/students': typeof AuthenticatedStudentsRouteWithChildren
'/_authenticated/students/$id': typeof AuthenticatedStudentsIdRoute
'/_authenticated/students/new': typeof AuthenticatedStudentsNewRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath
@@ -137,6 +147,7 @@ export interface FileRouteTypes {
| '/messages'
| '/students'
| '/students/$id'
| '/students/new'
fileRoutesByTo: FileRoutesByTo
to:
| '/'
@@ -150,6 +161,7 @@ export interface FileRouteTypes {
| '/messages'
| '/students'
| '/students/$id'
| '/students/new'
id:
| '__root__'
| '/'
@@ -164,6 +176,7 @@ export interface FileRouteTypes {
| '/_authenticated/messages'
| '/_authenticated/students'
| '/_authenticated/students/$id'
| '/_authenticated/students/new'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
@@ -251,6 +264,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof AuthenticatedAdminRouteImport
parentRoute: typeof AuthenticatedRouteRoute
}
'/_authenticated/students/new': {
id: '/_authenticated/students/new'
path: '/new'
fullPath: '/students/new'
preLoaderRoute: typeof AuthenticatedStudentsNewRouteImport
parentRoute: typeof AuthenticatedStudentsRoute
}
'/_authenticated/students/$id': {
id: '/_authenticated/students/$id'
path: '/$id'
@@ -263,10 +283,12 @@ declare module '@tanstack/react-router' {
interface AuthenticatedStudentsRouteChildren {
AuthenticatedStudentsIdRoute: typeof AuthenticatedStudentsIdRoute
AuthenticatedStudentsNewRoute: typeof AuthenticatedStudentsNewRoute
}
const AuthenticatedStudentsRouteChildren: AuthenticatedStudentsRouteChildren = {
AuthenticatedStudentsIdRoute: AuthenticatedStudentsIdRoute,
AuthenticatedStudentsNewRoute: AuthenticatedStudentsNewRoute,
}
const AuthenticatedStudentsRouteWithChildren =