File size: 1,958 Bytes
921d6f1
 
 
 
 
 
 
888ea39
 
 
 
921d6f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
create table if not exists profiles (
  id uuid primary key,
  name text not null,
  email text,
  timezone text not null,
  goals jsonb default '[]'::jsonb,
  preferred_mode text not null,
  date_of_birth date,
  gender text not null default 'prefer_not_to_say',
  sexual_orientation text not null default 'prefer_not_to_say',
  location text,
  created_at timestamptz not null,
  updated_at timestamptz not null
);

create table if not exists sessions (
  id uuid primary key,
  profile_id uuid not null references profiles(id) on delete cascade,
  mode text not null,
  title text,
  summary text,
  created_at timestamptz not null,
  updated_at timestamptz not null
);

create table if not exists messages (
  id uuid primary key,
  session_id uuid not null references sessions(id) on delete cascade,
  role text not null,
  content text not null,
  timestamp timestamptz not null,
  mood_score integer,
  distortion text,
  is_crisis boolean default false
);

create table if not exists mood_logs (
  id uuid primary key,
  session_id uuid not null references sessions(id) on delete cascade,
  profile_id uuid not null references profiles(id) on delete cascade,
  score integer not null,
  note text,
  timestamp timestamptz not null
);

create table if not exists homework (
  id uuid primary key,
  profile_id uuid not null references profiles(id) on delete cascade,
  session_id uuid not null references sessions(id) on delete cascade,
  title text not null,
  instructions text not null,
  status text not null,
  reflection text,
  due_at timestamptz,
  created_at timestamptz not null,
  updated_at timestamptz not null
);

create table if not exists schedules (
  id uuid primary key,
  profile_id uuid not null references profiles(id) on delete cascade,
  title text not null,
  description text,
  start_at timestamptz not null,
  end_at timestamptz not null,
  timezone text not null,
  calendar_url text,
  created_at timestamptz not null
);