Terminal
This commit is contained in:
@@ -1,89 +0,0 @@
|
||||
-- Expand student intake to match Bayside Academy's paper forms:
|
||||
-- Student Information Form + Authorized Persons Pick-Up Form.
|
||||
|
||||
-- ── Extra columns on students ────────────────────────────────────────────────
|
||||
ALTER TABLE public.students
|
||||
ADD COLUMN IF NOT EXISTS gender TEXT,
|
||||
ADD COLUMN IF NOT EXISTS grade_level TEXT,
|
||||
ADD COLUMN IF NOT EXISTS preferred_start_date DATE,
|
||||
-- health (allergies TEXT already exists)
|
||||
ADD COLUMN IF NOT EXISTS chronic_conditions TEXT,
|
||||
ADD COLUMN IF NOT EXISTS primary_physician TEXT,
|
||||
ADD COLUMN IF NOT EXISTS physician_phone TEXT,
|
||||
-- academic
|
||||
ADD COLUMN IF NOT EXISTS home_ed_eval_due DATE,
|
||||
ADD COLUMN IF NOT EXISTS previous_schools TEXT,
|
||||
ADD COLUMN IF NOT EXISTS special_needs TEXT,
|
||||
ADD COLUMN IF NOT EXISTS portfolio_keeper TEXT, -- 'parent' | 'bayside'
|
||||
ADD COLUMN IF NOT EXISTS disciplinary_history TEXT,
|
||||
ADD COLUMN IF NOT EXISTS custody_agreement TEXT, -- explanation; blank = none
|
||||
-- independent dismissal
|
||||
ADD COLUMN IF NOT EXISTS dismissal_methods TEXT[] NOT NULL DEFAULT '{}',
|
||||
ADD COLUMN IF NOT EXISTS dismissal_other TEXT,
|
||||
ADD COLUMN IF NOT EXISTS backup_transport_plan TEXT,
|
||||
-- additional
|
||||
ADD COLUMN IF NOT EXISTS interests TEXT,
|
||||
ADD COLUMN IF NOT EXISTS other_info TEXT,
|
||||
-- agreement
|
||||
ADD COLUMN IF NOT EXISTS agreement_signed_by TEXT,
|
||||
ADD COLUMN IF NOT EXISTS agreement_signed_date DATE;
|
||||
|
||||
-- ── Primary / secondary guardians ────────────────────────────────────────────
|
||||
CREATE TABLE IF NOT EXISTS public.student_guardians (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
student_id UUID NOT NULL REFERENCES public.students(id) ON DELETE CASCADE,
|
||||
is_primary BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
full_name TEXT NOT NULL,
|
||||
relationship TEXT,
|
||||
phone TEXT,
|
||||
address TEXT,
|
||||
city TEXT,
|
||||
state TEXT,
|
||||
zip TEXT,
|
||||
email TEXT,
|
||||
employer TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_student_guardians_student ON public.student_guardians(student_id);
|
||||
ALTER TABLE public.student_guardians ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY "guardians read" ON public.student_guardians FOR SELECT TO authenticated
|
||||
USING (
|
||||
public.current_user_has_role('admin')
|
||||
OR public.is_parent_of(student_id)
|
||||
OR public.teaches_student(student_id)
|
||||
);
|
||||
CREATE POLICY "guardians write parent or admin" ON public.student_guardians FOR ALL TO authenticated
|
||||
USING (public.current_user_has_role('admin') OR public.is_parent_of(student_id))
|
||||
WITH CHECK (public.current_user_has_role('admin') OR public.is_parent_of(student_id));
|
||||
|
||||
-- ── Curriculum platform logins (repeatable) ──────────────────────────────────
|
||||
CREATE TABLE IF NOT EXISTS public.student_curriculum_logins (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
student_id UUID NOT NULL REFERENCES public.students(id) ON DELETE CASCADE,
|
||||
website TEXT,
|
||||
student_login TEXT,
|
||||
student_password TEXT,
|
||||
parent_account TEXT,
|
||||
parent_password TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_curriculum_logins_student ON public.student_curriculum_logins(student_id);
|
||||
ALTER TABLE public.student_curriculum_logins ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY "curriculum read" ON public.student_curriculum_logins FOR SELECT TO authenticated
|
||||
USING (
|
||||
public.current_user_has_role('admin')
|
||||
OR public.is_parent_of(student_id)
|
||||
OR public.teaches_student(student_id)
|
||||
);
|
||||
CREATE POLICY "curriculum write parent or admin" ON public.student_curriculum_logins FOR ALL TO authenticated
|
||||
USING (public.current_user_has_role('admin') OR public.is_parent_of(student_id))
|
||||
WITH CHECK (public.current_user_has_role('admin') OR public.is_parent_of(student_id));
|
||||
|
||||
-- ── Authorized pickups: also hold emergency contacts + notes ─────────────────
|
||||
ALTER TABLE public.authorized_pickups
|
||||
ADD COLUMN IF NOT EXISTS alt_phone TEXT,
|
||||
ADD COLUMN IF NOT EXISTS notes TEXT,
|
||||
ADD COLUMN IF NOT EXISTS kind TEXT NOT NULL DEFAULT 'pickup', -- 'pickup' | 'emergency'
|
||||
ADD COLUMN IF NOT EXISTS sort_order INTEGER NOT NULL DEFAULT 0;
|
||||
Reference in New Issue
Block a user