File size: 2,054 Bytes
e586f48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8417250
 
 
e586f48
 
 
8417250
e586f48
 
 
 
 
69eaa4c
e586f48
69eaa4c
 
 
 
e586f48
 
69eaa4c
 
e586f48
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-- Destructive one-time migration from the former multi-product application.
-- Back up the project before running this file.
drop table if exists public.attempts cascade;
drop table if exists public.writings cascade;
drop table if exists public.tutors cascade;
drop table if exists public.flags cascade;
drop table if exists public.lab_samples cascade;
drop table if exists public.calibrations cascade;
drop table if exists public.scoring_rules cascade;
drop table if exists public.model_settings cascade;
drop table if exists public.videos cascade;
drop table if exists public.texts cascade;
drop table if exists public.dailies cascade;
drop table if exists public.library cascade;
drop table if exists public.learner_class_state cascade;
drop table if exists public.tutor_chats cascade;

-- Mathly owns only math-class rosters and role assignments.
create table if not exists public.classes (
  id bigint generated always as identity primary key,
  name text not null unique,
  emails text[] not null default '{}',
  nicknames jsonb not null default '{}',
  lessons text[] not null default '{}',
  teachers text[] not null default '{}',
  exams jsonb not null default '[]',
  exam_title text not null default '',
  exam_note text not null default '',
  created_at timestamptz not null default now()
);

alter table public.classes drop column if exists homework,
  drop column if exists due,
  drop column if exists homeworks,
  drop column if exists dailies;

create table if not exists public.user_access (
  user_id uuid primary key references auth.users(id) on delete cascade,
  email text not null default '',
  roles text[] not null default array['student']::text[],
  updated_at timestamptz not null default now()
);

alter table public.user_access drop column if exists subject,
  drop column if exists entitlements;

alter table public.classes enable row level security;
alter table public.user_access enable row level security;
revoke all on public.classes from anon, authenticated;
revoke all on public.user_access from anon, authenticated;