-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.ts
55 lines (45 loc) · 1.12 KB
/
types.ts
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
interface dbBaseProps {
id: string; // UUID
createdAt: Date;
updatedAt: Date;
}
type dbArray<T> = Array<T> & {_count: number};
export interface User extends dbBaseProps {
name: string;
email: string;
}
export interface Group extends dbBaseProps {
groupNumber: number;
mice: dbArray<Mouse>;
}
export interface Mouse extends dbBaseProps {
pyratId: string; // Internal ID
chipNumber: number; // number from 0 - 99
mouseNumber: number;
gender: 'FEMALE' | 'MALE';
deceasedAt?: Date;
surgeryDate?: Date;
genoType?: string; // Specific genetic modification of the subject
Group: Group;
}
export interface Run extends dbBaseProps {
Mouse: Mouse;
// Right steps 0 - 8
right: Array<number>;
// Left steps 0 - 8
left: Array<number>;
Experiment: Experiment;
RecordingSession: RecordingSession;
}
export interface RecordingSession extends dbBaseProps {
author: User;
runs: dbArray<Run>;
Experiment: Experiment;
}
export interface Experiment extends dbBaseProps {
name: string;
displayId: string;
closedAt?: Date;
recordingSessions?: dbArray<RecordingSession>;
groups?: dbArray<Group>;
}