@quesmed/types 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/cjs/models/Card.d.ts +2 -2
  2. package/dist/cjs/models/Chapter.d.ts +5 -3
  3. package/dist/cjs/models/Concept.d.ts +2 -10
  4. package/dist/cjs/models/File.d.ts +2 -2
  5. package/dist/cjs/models/Marksheet.d.ts +17 -28
  6. package/dist/cjs/models/Marksheet.js +0 -7
  7. package/dist/cjs/models/MockTest.d.ts +1 -0
  8. package/dist/cjs/models/OsceMarksheet.d.ts +2 -2
  9. package/dist/cjs/models/OsceStation.d.ts +11 -9
  10. package/dist/cjs/models/Picture.d.ts +0 -33
  11. package/dist/cjs/models/Question.d.ts +27 -2
  12. package/dist/cjs/models/Question.js +7 -1
  13. package/dist/cjs/models/Todo.d.ts +10 -1
  14. package/dist/cjs/models/Token.d.ts +2 -0
  15. package/dist/cjs/models/Topic.d.ts +16 -1
  16. package/dist/cjs/models/User.d.ts +34 -20
  17. package/dist/cjs/models/Video.d.ts +1 -0
  18. package/dist/cjs/resolvers/fragments/chapter.d.ts +0 -1
  19. package/dist/cjs/resolvers/fragments/chapter.js +8 -14
  20. package/dist/cjs/resolvers/fragments/osce.js +5 -6
  21. package/dist/cjs/resolvers/fragments/picture.d.ts +0 -2
  22. package/dist/cjs/resolvers/fragments/picture.js +1 -23
  23. package/dist/cjs/resolvers/fragments/user.js +13 -0
  24. package/dist/cjs/resolvers/fragments/video.js +3 -2
  25. package/dist/cjs/resolvers/mutation/admin/algoliaSync.d.ts +5 -6
  26. package/dist/cjs/resolvers/mutation/admin/token.d.ts +3 -2
  27. package/dist/cjs/resolvers/mutation/restricted/contactUs.d.ts +6 -5
  28. package/dist/cjs/resolvers/mutation/restricted/marksheet.d.ts +9 -11
  29. package/dist/cjs/resolvers/mutation/restricted/mockTest.d.ts +5 -4
  30. package/dist/cjs/resolvers/mutation/restricted/questionDiscussion.d.ts +6 -10
  31. package/dist/cjs/resolvers/mutation/restricted/todo.d.ts +6 -22
  32. package/dist/cjs/resolvers/mutation/restricted/todo.js +0 -26
  33. package/dist/cjs/resolvers/mutation/restricted/token.d.ts +5 -5
  34. package/dist/cjs/resolvers/mutation/restricted/users.d.ts +5 -8
  35. package/dist/cjs/resolvers/mutation/restricted/video.d.ts +3 -5
  36. package/dist/cjs/resolvers/mutation/stripe.d.ts +3 -2
  37. package/dist/cjs/resolvers/mutation/users.d.ts +5 -4
  38. package/dist/cjs/resolvers/mutation/validUserToken/user.d.ts +11 -5
  39. package/dist/cjs/resolvers/query/admin/getUserToken.d.ts +2 -1
  40. package/dist/cjs/resolvers/query/author.d.ts +2 -2
  41. package/dist/cjs/resolvers/query/book.d.ts +4 -2
  42. package/dist/cjs/resolvers/query/feedback.d.ts +2 -2
  43. package/dist/cjs/resolvers/query/restricted/index.d.ts +0 -1
  44. package/dist/cjs/resolvers/query/restricted/index.js +0 -1
  45. package/dist/cjs/resolvers/query/restricted/marksheet.d.ts +8 -8
  46. package/dist/cjs/resolvers/query/restricted/mockTests.d.ts +4 -4
  47. package/dist/cjs/resolvers/query/restricted/osce.d.ts +3 -3
  48. package/dist/cjs/resolvers/query/restricted/quesBook.d.ts +1 -1
  49. package/dist/cjs/resolvers/query/restricted/replication.d.ts +2 -3
  50. package/dist/cjs/resolvers/query/restricted/todos.d.ts +6 -5
  51. package/dist/cjs/resolvers/query/restricted/topics.d.ts +3 -13
  52. package/dist/cjs/resolvers/query/restricted/university.d.ts +2 -2
  53. package/dist/cjs/resolvers/query/restricted/user.d.ts +5 -17
  54. package/dist/cjs/resolvers/query/restricted/video.d.ts +3 -2
  55. package/dist/cjs/resolvers/query/subscription.d.ts +2 -2
  56. package/dist/cjs/resolvers/query/university.d.ts +2 -1
  57. package/dist/cjs/resolvers/query/user.d.ts +4 -3
  58. package/dist/cjs/resolvers/query/video.d.ts +4 -3
  59. package/dist/cjs/utils/lightgallery.js +1 -1
  60. package/dist/mjs/models/Card.d.ts +2 -2
  61. package/dist/mjs/models/Chapter.d.ts +5 -3
  62. package/dist/mjs/models/Concept.d.ts +2 -10
  63. package/dist/mjs/models/File.d.ts +2 -2
  64. package/dist/mjs/models/Marksheet.d.ts +17 -28
  65. package/dist/mjs/models/Marksheet.js +1 -6
  66. package/dist/mjs/models/MockTest.d.ts +1 -0
  67. package/dist/mjs/models/OsceMarksheet.d.ts +2 -2
  68. package/dist/mjs/models/OsceStation.d.ts +11 -9
  69. package/dist/mjs/models/Picture.d.ts +0 -33
  70. package/dist/mjs/models/Question.d.ts +27 -2
  71. package/dist/mjs/models/Question.js +6 -0
  72. package/dist/mjs/models/Todo.d.ts +10 -1
  73. package/dist/mjs/models/Token.d.ts +2 -0
  74. package/dist/mjs/models/Topic.d.ts +16 -1
  75. package/dist/mjs/models/User.d.ts +34 -20
  76. package/dist/mjs/models/Video.d.ts +1 -0
  77. package/dist/mjs/resolvers/fragments/chapter.d.ts +0 -1
  78. package/dist/mjs/resolvers/fragments/chapter.js +8 -14
  79. package/dist/mjs/resolvers/fragments/osce.js +6 -7
  80. package/dist/mjs/resolvers/fragments/picture.d.ts +0 -2
  81. package/dist/mjs/resolvers/fragments/picture.js +0 -22
  82. package/dist/mjs/resolvers/fragments/user.js +13 -0
  83. package/dist/mjs/resolvers/fragments/video.js +4 -3
  84. package/dist/mjs/resolvers/mutation/admin/algoliaSync.d.ts +5 -6
  85. package/dist/mjs/resolvers/mutation/admin/token.d.ts +3 -2
  86. package/dist/mjs/resolvers/mutation/restricted/contactUs.d.ts +6 -5
  87. package/dist/mjs/resolvers/mutation/restricted/marksheet.d.ts +9 -11
  88. package/dist/mjs/resolvers/mutation/restricted/mockTest.d.ts +5 -4
  89. package/dist/mjs/resolvers/mutation/restricted/questionDiscussion.d.ts +6 -10
  90. package/dist/mjs/resolvers/mutation/restricted/todo.d.ts +6 -22
  91. package/dist/mjs/resolvers/mutation/restricted/todo.js +1 -24
  92. package/dist/mjs/resolvers/mutation/restricted/token.d.ts +5 -5
  93. package/dist/mjs/resolvers/mutation/restricted/users.d.ts +5 -8
  94. package/dist/mjs/resolvers/mutation/restricted/video.d.ts +3 -5
  95. package/dist/mjs/resolvers/mutation/stripe.d.ts +3 -2
  96. package/dist/mjs/resolvers/mutation/users.d.ts +5 -4
  97. package/dist/mjs/resolvers/mutation/validUserToken/user.d.ts +11 -5
  98. package/dist/mjs/resolvers/query/admin/getUserToken.d.ts +2 -1
  99. package/dist/mjs/resolvers/query/author.d.ts +2 -2
  100. package/dist/mjs/resolvers/query/book.d.ts +4 -2
  101. package/dist/mjs/resolvers/query/feedback.d.ts +2 -2
  102. package/dist/mjs/resolvers/query/restricted/index.d.ts +0 -1
  103. package/dist/mjs/resolvers/query/restricted/index.js +0 -1
  104. package/dist/mjs/resolvers/query/restricted/marksheet.d.ts +8 -8
  105. package/dist/mjs/resolvers/query/restricted/mockTests.d.ts +4 -4
  106. package/dist/mjs/resolvers/query/restricted/osce.d.ts +3 -3
  107. package/dist/mjs/resolvers/query/restricted/quesBook.d.ts +1 -1
  108. package/dist/mjs/resolvers/query/restricted/replication.d.ts +2 -3
  109. package/dist/mjs/resolvers/query/restricted/todos.d.ts +6 -5
  110. package/dist/mjs/resolvers/query/restricted/topics.d.ts +3 -13
  111. package/dist/mjs/resolvers/query/restricted/university.d.ts +2 -2
  112. package/dist/mjs/resolvers/query/restricted/user.d.ts +5 -17
  113. package/dist/mjs/resolvers/query/restricted/video.d.ts +3 -2
  114. package/dist/mjs/resolvers/query/subscription.d.ts +2 -2
  115. package/dist/mjs/resolvers/query/university.d.ts +2 -1
  116. package/dist/mjs/resolvers/query/user.d.ts +4 -3
  117. package/dist/mjs/resolvers/query/video.d.ts +4 -3
  118. package/dist/mjs/utils/lightgallery.js +1 -1
  119. package/package.json +3 -1
  120. package/dist/cjs/resolvers/query/restricted/anatomy.d.ts +0 -3
  121. package/dist/cjs/resolvers/query/restricted/anatomy.js +0 -2
  122. package/dist/mjs/resolvers/query/restricted/anatomy.d.ts +0 -3
  123. package/dist/mjs/resolvers/query/restricted/anatomy.js +0 -1
@@ -1,5 +1,5 @@
1
1
  import { IConcept } from './Concept';
2
- import { ICardPicture } from './Picture';
2
+ import { IPicture } from './Picture';
3
3
  import { ITopic } from './Topic';
4
4
  import { Id } from './Type';
5
5
  export interface ICard {
@@ -12,5 +12,5 @@ export interface ICard {
12
12
  question: string;
13
13
  explanation: string;
14
14
  public: boolean;
15
- pictures: ICardPicture[];
15
+ pictures: IPicture[];
16
16
  }
@@ -1,13 +1,15 @@
1
1
  import { IFile } from './File';
2
- import { IChapterPicture } from './Picture';
2
+ import { IPicture } from './Picture';
3
3
  import { ETopicType } from './Topic';
4
4
  import { Id } from './Type';
5
+ import { IVideo } from './Video';
5
6
  export interface IChapter {
6
7
  id: Id;
7
8
  createdAt: number | Date;
8
9
  updatedAt: number | Date;
9
10
  explanation: string | null;
10
11
  typeId: ETopicType | null;
11
- pictures: IChapterPicture[];
12
- files: IFile[];
12
+ pictures?: IPicture[];
13
+ videos?: IVideo[];
14
+ files?: IFile[];
13
15
  }
@@ -7,17 +7,9 @@ export interface IConcept {
7
7
  createdAt: number | Date;
8
8
  updatedAt: number | Date;
9
9
  name: string;
10
- chapterId: Id;
11
- chapter: IChapter;
12
10
  topicId: Id;
13
11
  topic?: ITopic;
12
+ chapterId: Id;
13
+ chapter?: IChapter;
14
14
  videos?: IVideo[];
15
15
  }
16
- export interface IAnatomyConcept {
17
- id: number;
18
- name: string;
19
- totalCards: number;
20
- ConfidentCards: number;
21
- ReviewCards: number;
22
- LearnCards: number;
23
- }
@@ -5,6 +5,6 @@ export interface IFile {
5
5
  updatedAt: number | Date;
6
6
  title: string;
7
7
  url: string;
8
- videoId?: number;
9
- chapterId?: number;
8
+ videoId: Id | null;
9
+ chapterId: Id | null;
10
10
  }
@@ -1,47 +1,36 @@
1
- import { IPrescribeMark, IQuestion, IQuestionQAAnswer } from './Question';
1
+ import { IPrescribeAnswer, IPrescribeMark, IQuestion, IQuestionChoice, IQuestionQAAnswer } from './Question';
2
2
  import { Id } from './Type';
3
+ import { IUser } from './User';
3
4
  export interface IMarksheet {
4
5
  id: Id;
5
6
  createdAt: number | Date;
7
+ updatedAt: number | Date;
8
+ startedAt: number | Date;
6
9
  endedAt: number | Date;
10
+ topicIds: number[];
11
+ topicNames?: string[];
7
12
  source: string;
13
+ userId: Id;
14
+ user?: IUser;
8
15
  marks: IMarksheetMark[];
9
16
  mockTestId: number | null;
17
+ correct?: number;
18
+ incorrect?: number;
19
+ totalQuestions?: number;
20
+ isTestMarksheet?: boolean;
10
21
  }
11
- export declare enum EQuestionLike {
12
- NONE = 0,
13
- LIKE = 1,
14
- DISLIKE = 2
15
- }
16
- export declare type IMarksheetMarkJSONB = string | [string] | [IQuestionQAAnswer] | [string[], string[]] | [IPrescribeMark] | null;
22
+ export declare type IMarksheetMarkJSONB = string | [string] | [IQuestionQAAnswer] | [string[], string[]] | [IPrescribeMark] | IPrescribeAnswer | null;
17
23
  export interface IMarksheetMark {
18
24
  id: Id;
25
+ createdAt: number | Date;
26
+ updatedAt: number | Date;
19
27
  index: number;
20
28
  marksheetId: Id;
21
- questionChoiceId: Id;
29
+ questionChoiceId: Id | null;
30
+ questionChoices?: IQuestionChoice;
22
31
  timeTaken: number;
23
32
  flagged: boolean;
24
33
  questionId: Id;
25
34
  question: IQuestion;
26
35
  mark: IMarksheetMarkJSONB;
27
- like: number;
28
- dislike: number;
29
- isLikeByMe: EQuestionLike;
30
- discussion: IDiscussion[];
31
- }
32
- export interface IDiscussion {
33
- username: string;
34
- userId: Id;
35
- createdAt: number | Date;
36
- comment: string;
37
- like: number;
38
- dislike: number;
39
- isLikeByMe: EQuestionLike;
40
- commentId: number;
41
- questionId: number;
42
- reply: IDiscussion[];
43
- }
44
- export interface ILikeDislikeCount {
45
- like: number;
46
- dislike: number;
47
36
  }
@@ -1,9 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EQuestionLike = void 0;
4
- var EQuestionLike;
5
- (function (EQuestionLike) {
6
- EQuestionLike[EQuestionLike["NONE"] = 0] = "NONE";
7
- EQuestionLike[EQuestionLike["LIKE"] = 1] = "LIKE";
8
- EQuestionLike[EQuestionLike["DISLIKE"] = 2] = "DISLIKE";
9
- })(EQuestionLike = exports.EQuestionLike || (exports.EQuestionLike = {}));
@@ -3,6 +3,7 @@ import { ETopicType } from './Topic';
3
3
  import { Id } from './Type';
4
4
  export interface IMockTest {
5
5
  id: Id;
6
+ createdAt: number | Date;
6
7
  title: string;
7
8
  typeId: ETopicType | null;
8
9
  passingMark: number;
@@ -7,7 +7,7 @@ export interface IOsceMarksheetUser {
7
7
  osceMarksheetId: Id;
8
8
  userId: Id | null;
9
9
  user: IUser | null;
10
- role: EOsceRoles;
10
+ role: EOsceRoles | null;
11
11
  }
12
12
  export interface IOsceMarksheetMark {
13
13
  id: Id;
@@ -74,7 +74,7 @@ export interface IOsceMarksheet {
74
74
  }
75
75
  export interface IDashboardOsce {
76
76
  lastAgoraId: string;
77
- types: IOsceTypeDashboard[];
77
+ types: IOsceType[];
78
78
  avgScore: number;
79
79
  completed: number;
80
80
  total: number;
@@ -1,14 +1,18 @@
1
1
  import { EDifficultyType } from './Difficulty';
2
- import { IOsceActorPicture, IOsceCandidatePicture, IOsceExaminerPicture, IOsceWalkthroughPicture } from './Picture';
2
+ import { IPicture } from './Picture';
3
3
  import { ITopic } from './Topic';
4
4
  import { Id } from './Type';
5
5
  import { IVideo } from './Video';
6
6
  export interface IOsceType {
7
7
  id: Id;
8
8
  name: string;
9
+ completed: number;
10
+ total: number;
11
+ avgScore: number;
9
12
  }
10
13
  export interface IOsceStationMark {
11
14
  id: Id;
15
+ updatedAt: number | Date;
12
16
  index: number;
13
17
  osceStationId: Id;
14
18
  header: string;
@@ -37,15 +41,13 @@ export interface IOsceStation {
37
41
  explanation: string;
38
42
  marks: IOsceStationMark[];
39
43
  topics?: ITopic[];
40
- candidatePictures?: IOsceCandidatePicture[];
41
- actorPictures?: IOsceActorPicture[];
42
- examinerPictures?: IOsceExaminerPicture[];
43
- walkthroughPictures?: IOsceWalkthroughPicture[];
44
+ candidatePictures?: IPicture[];
45
+ actorPictures?: IPicture[];
46
+ examinerPictures?: IPicture[];
47
+ walkthroughPictures?: IPicture[];
44
48
  videos?: IVideo[];
45
- }
46
- export interface IOsceStationItem extends IOsceStation {
47
- lastOsceMarksheetId: Id;
48
- score: number;
49
+ lastOsceMarksheetId?: Id;
50
+ score?: number;
49
51
  }
50
52
  export declare const OSCE_GLOBAL_RATING: {
51
53
  [key: number]: string;
@@ -12,36 +12,3 @@ export interface IPicture {
12
12
  topicId: Id;
13
13
  topic: ITopic;
14
14
  }
15
- export interface IQuestionPicture {
16
- id: Id;
17
- pictureId: Id;
18
- questionId: Id;
19
- choiceId: Id | null;
20
- picture: IPicture;
21
- }
22
- export interface ICardPicture {
23
- id: Id;
24
- pictureId: Id;
25
- cardId: Id;
26
- picture: IPicture;
27
- }
28
- export interface IChapterPicture {
29
- id: Id;
30
- pictureId: Id;
31
- chapterId: Id;
32
- picture: IPicture;
33
- }
34
- export interface IOscePicture {
35
- id: Id;
36
- osceStationId: Id;
37
- pictureId: Id;
38
- picture: IPicture;
39
- }
40
- export interface IOsceCandidatePicture extends IOscePicture {
41
- }
42
- export interface IOsceActorPicture extends IOscePicture {
43
- }
44
- export interface IOsceExaminerPicture extends IOscePicture {
45
- }
46
- export interface IOsceWalkthroughPicture extends IOscePicture {
47
- }
@@ -1,7 +1,8 @@
1
1
  import { IConcept } from './Concept';
2
2
  import { EDifficultyType } from './Difficulty';
3
- import { IQuestionPicture } from './Picture';
3
+ import { IPicture } from './Picture';
4
4
  import { Id } from './Type';
5
+ import { IUser } from './User';
5
6
  export declare enum EPsaSectionType {
6
7
  PRESCRIBING = 1,
7
8
  PRESCRIPTION_REVIEW = 2,
@@ -18,6 +19,25 @@ export declare enum EQuestionType {
18
19
  MULTIPLE_ANSWERS = 3,
19
20
  PRESCRIPTION_ANSWER = 4
20
21
  }
22
+ export declare enum EQuestionLike {
23
+ NONE = 0,
24
+ LIKE = 1,
25
+ DISLIKE = 2
26
+ }
27
+ export interface IQuestionComment {
28
+ id: Id;
29
+ createdAt: number | Date;
30
+ updatedAt: number | Date;
31
+ userId: Id;
32
+ user?: IUser;
33
+ username?: string | null;
34
+ questionId: number;
35
+ comment: string;
36
+ replies?: IQuestionComment[];
37
+ likes?: number;
38
+ dislikes?: number;
39
+ isLikedByMe?: EQuestionLike;
40
+ }
21
41
  export declare type IQuestionAnswer = string | [string] | [IQuestionQAAnswer] | [string[], string[]] | IPrescribeAnswer[];
22
42
  export declare type IQuestionAll = IQuestion | IQuestionSBA | IQuestionQA | IQuestionMultiQ | IQuestionPrescribe;
23
43
  export interface IQuestion {
@@ -31,10 +51,14 @@ export interface IQuestion {
31
51
  answer: IQuestionAnswer;
32
52
  totalVotes: number;
33
53
  choices: IQuestionChoice[];
34
- pictures: IQuestionPicture[];
54
+ pictures?: IPicture[];
35
55
  difficulty: EDifficultyType;
36
56
  elo: number;
37
57
  psaSectionId: EPsaSectionType;
58
+ likes?: number;
59
+ dislikes?: number;
60
+ isLikedByMe?: EQuestionLike;
61
+ comments?: IQuestionComment[];
38
62
  }
39
63
  export interface IQuestionChoice {
40
64
  id: Id;
@@ -43,6 +67,7 @@ export interface IQuestionChoice {
43
67
  label: string;
44
68
  answer: boolean;
45
69
  votes: number;
70
+ picture?: IPicture | null;
46
71
  }
47
72
  export declare function isQuestionSBA(data: IQuestionAll): data is IQuestionSBA;
48
73
  export interface IQuestionSBA extends IQuestion {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isQuestionPrescribe = exports.isQuestionMultiQ = exports.isQuestionQA = exports.isQuestionSBA = exports.EQuestionType = exports.EPsaSectionType = void 0;
3
+ exports.isQuestionPrescribe = exports.isQuestionMultiQ = exports.isQuestionQA = exports.isQuestionSBA = exports.EQuestionLike = exports.EQuestionType = exports.EPsaSectionType = void 0;
4
4
  var EPsaSectionType;
5
5
  (function (EPsaSectionType) {
6
6
  EPsaSectionType[EPsaSectionType["PRESCRIBING"] = 1] = "PRESCRIBING";
@@ -19,6 +19,12 @@ var EQuestionType;
19
19
  EQuestionType[EQuestionType["MULTIPLE_ANSWERS"] = 3] = "MULTIPLE_ANSWERS";
20
20
  EQuestionType[EQuestionType["PRESCRIPTION_ANSWER"] = 4] = "PRESCRIPTION_ANSWER";
21
21
  })(EQuestionType = exports.EQuestionType || (exports.EQuestionType = {}));
22
+ var EQuestionLike;
23
+ (function (EQuestionLike) {
24
+ EQuestionLike[EQuestionLike["NONE"] = 0] = "NONE";
25
+ EQuestionLike[EQuestionLike["LIKE"] = 1] = "LIKE";
26
+ EQuestionLike[EQuestionLike["DISLIKE"] = 2] = "DISLIKE";
27
+ })(EQuestionLike = exports.EQuestionLike || (exports.EQuestionLike = {}));
22
28
  function isQuestionSBA(data) {
23
29
  return data.typeId === EQuestionType.SINGLE_BEST_ANSWER;
24
30
  }
@@ -1,19 +1,28 @@
1
1
  import { ICard } from './Card';
2
+ import { ITopic } from './Topic';
2
3
  import { Id } from './Type';
4
+ import { IUser } from './User';
3
5
  export interface ITodo {
4
6
  id: Id;
5
7
  createdAt: number | Date;
6
8
  updatedAt: number | Date;
7
9
  userId: Id;
10
+ user?: IUser;
8
11
  dailyTask: boolean;
9
12
  marks: ITodoMark[];
10
13
  source: string;
14
+ topics?: ITopic[];
15
+ redCards?: number | null;
16
+ yellowCards?: number | null;
17
+ greenCards?: number | null;
11
18
  }
12
19
  export interface ITodoMark {
13
20
  id: Id;
21
+ createdAt: number | Date;
22
+ updatedAt: number | Date;
14
23
  todoId: Id;
15
24
  cardId: Id;
16
- card: ICard;
25
+ card?: ICard;
17
26
  score: number;
18
27
  timeTaken: number;
19
28
  }
@@ -1,6 +1,8 @@
1
1
  import { Id } from './Type';
2
2
  export interface IToken {
3
3
  id: Id;
4
+ createdAt: number | Date;
5
+ updatedAt: number | Date;
4
6
  userId: Id;
5
7
  token: string;
6
8
  deviceId: string;
@@ -9,9 +9,24 @@ export declare enum ETopicType {
9
9
  PSA = 5,
10
10
  OSCE = 6
11
11
  }
12
+ export interface ITopicType {
13
+ id: ETopicType;
14
+ name: string;
15
+ }
12
16
  export interface ITopic {
13
17
  id: Id;
18
+ createdAt: number | Date;
19
+ updatedAt: number | Date;
14
20
  name: string;
15
- typeId: ETopicType | null;
16
21
  concepts?: IConcept[];
22
+ typeId: ETopicType | null;
23
+ type?: ITopicType | null;
24
+ totalQuestions?: number | null;
25
+ correctQuestions?: number | null;
26
+ incorrectQuestions?: number | null;
27
+ totalCards?: number | null;
28
+ greenCards?: number | null;
29
+ yellowCards?: number | null;
30
+ redCards?: number | null;
31
+ dailyFeedCards?: number | null;
17
32
  }
@@ -1,10 +1,10 @@
1
1
  import { ICard } from './Card';
2
2
  import { IConcept } from './Concept';
3
- import { IMarksheetMark } from './Marksheet';
3
+ import { IMarksheet, IMarksheetMark } from './Marksheet';
4
4
  import { IQuestion } from './Question';
5
5
  import { ISubscription } from './Subscription';
6
- import { ITopic } from './Topic';
7
6
  import { Id } from './Type';
7
+ import { IUniversity } from './University';
8
8
  export declare type IAccessLevel = 'subscriber' | 'administrator' | 'tutor';
9
9
  export declare type IClassYear = 'Year 1' | 'Year 2' | 'Year 3' | 'Year 4' | 'Year 5' | 'Graduated' | 'PhD' | 'BSc' | 'MSc' | 'Beta Tester';
10
10
  export declare const classYears: IClassYear[];
@@ -24,13 +24,14 @@ export interface IPayload {
24
24
  accessLevel: IAccessLevel;
25
25
  tocAccepted: boolean;
26
26
  exp: number;
27
- stripeSubscriptionEndDate: number | null;
28
27
  stripeQBankSubscriptionEndDate: number | null;
29
28
  stripeOsceSubscriptionEndDate: number | null;
30
29
  stripeBundleSubscriptionEndDate: number | null;
31
30
  }
32
31
  export interface IUser {
33
32
  id: Id;
33
+ createdAt: number | Date;
34
+ updatedAt: number | Date;
34
35
  displayName: string;
35
36
  username: string;
36
37
  firstName: string;
@@ -38,24 +39,39 @@ export interface IUser {
38
39
  tocAccepted: boolean;
39
40
  dailyFeedResetTime: number;
40
41
  dailyFeedMax: number;
41
- classYear: IClassYear;
42
- graduationYear: number;
43
- universityId: number;
44
- examDate: number | Date | null;
45
42
  stripeCustomerId: string;
46
- qBankSubscriptionId: Id | null;
43
+ stripeLastSyncAt: number | Date | null;
44
+ qBankSubscriptionId: Id;
47
45
  qBankSubscription: ISubscription | null;
48
- stripeQBankSubscriptionEndDate: number | Date | null;
49
- osceSubscriptionId: Id | null;
46
+ stripeQBankSubscriptionId: string;
47
+ stripeQBankSubscriptionEndDate: number | Date;
48
+ osceSubscriptionId: Id;
50
49
  osceSubscription: ISubscription | null;
51
- stripeOsceSubscriptionEndDate: number | Date | null;
52
- bundleSubscriptionId: Id | null;
50
+ stripeOsceSubscriptionId: string;
51
+ stripeOsceSubscriptionEndDate: number | Date;
52
+ bundleSubscriptionId: Id;
53
53
  bundleSubscription: ISubscription | null;
54
- stripeBundleSubscriptionEndDate: number | Date | null;
55
- subscriptionId: Id | null;
56
- subscription?: ISubscription | null;
57
- stripeSubscriptionEndDate: number | Date | null;
58
- stripePriceNickname: string | null;
54
+ stripeBundleSubscriptionId: string;
55
+ stripeBundleSubscriptionEndDate: number | Date;
56
+ referralCount: number;
57
+ classYear: IClassYear;
58
+ graduationYear: number;
59
+ universityId: Id;
60
+ university: IUniversity;
61
+ examDate: number | Date | null;
62
+ accessLevel: IAccessLevel;
63
+ elo: number;
64
+ marksheets: IMarksheet[];
65
+ completedQuestions: IUserCompletedQuestions[];
66
+ completedCards: IUserCompletedCards[];
67
+ marksheetsCount?: number | null;
68
+ completedQuestionsCount?: number | null;
69
+ completedCorrectQuestionsCount?: number | null;
70
+ completedIncorrectQuestionsCount?: number | null;
71
+ completedCardsCount?: number | null;
72
+ completedGreenCardsCount?: number | null;
73
+ completedYellowCardsCount?: number | null;
74
+ completedRedCardsCount?: number | null;
59
75
  }
60
76
  export declare function currentClassYear(createdAtUnix: number, classYear: IClassYear): IClassYear;
61
77
  export declare function currentClassGroup(createdAtUnix: number, classYear: IClassYear): EClassYearGroup;
@@ -67,7 +83,6 @@ export interface IUserCompletedQuestions {
67
83
  userId: Id;
68
84
  correct: boolean;
69
85
  question: IQuestion;
70
- topic: ITopic;
71
86
  concept: IConcept;
72
87
  }
73
88
  export interface IUserCompletedCards {
@@ -77,14 +92,13 @@ export interface IUserCompletedCards {
77
92
  cardId: Id;
78
93
  card: ICard;
79
94
  userId: Id;
80
- topic: ITopic;
81
95
  concept: IConcept;
82
96
  lastSeen: number | Date;
83
97
  score: number;
84
98
  iteration: number;
85
99
  optimalFactor: number;
86
100
  }
87
- export interface IUserFlaggedQuestions {
101
+ export interface IUserFlaggedQuestion {
88
102
  id: Id;
89
103
  createdAt: number | Date;
90
104
  updatedAt: number | Date;
@@ -22,4 +22,5 @@ export interface IVideo {
22
22
  sent1hrPushAt: number | Date | null;
23
23
  send24hrPushAt: number | Date | null;
24
24
  sent24hrPushAt: number | Date | null;
25
+ viewsToday?: number | null;
25
26
  }
@@ -1,2 +1 @@
1
- export declare const CHAPTER_FILE_FIELDS: import("@apollo/client").DocumentNode;
2
1
  export declare const CHAPTER_FIELDS: import("@apollo/client").DocumentNode;
@@ -1,20 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHAPTER_FIELDS = exports.CHAPTER_FILE_FIELDS = void 0;
3
+ exports.CHAPTER_FIELDS = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const picture_1 = require("./picture");
6
- exports.CHAPTER_FILE_FIELDS = (0, client_1.gql) `
7
- fragment ChapterFileFields on File {
8
- id
9
- title
10
- url
11
- videoId
12
- conceptId
13
- }
14
- `;
15
6
  exports.CHAPTER_FIELDS = (0, client_1.gql) `
16
- ${exports.CHAPTER_FILE_FIELDS}
17
- ${picture_1.CHAPTER_PICTURE_FIELDS}
7
+ ${picture_1.PICTURE_FIELDS}
18
8
  fragment ChapterFields on Chapter {
19
9
  id
20
10
  createdAt
@@ -22,10 +12,14 @@ exports.CHAPTER_FIELDS = (0, client_1.gql) `
22
12
  explanation
23
13
  typeId
24
14
  pictures {
25
- ...ChapterPictureFields
15
+ ...PictureFields
26
16
  }
27
17
  files {
28
- ...ChapterFileFields
18
+ id
19
+ title
20
+ url
21
+ videoId
22
+ conceptId
29
23
  }
30
24
  }
31
25
  `;
@@ -13,12 +13,11 @@ exports.OSCE_STATION_MARK_FIELDS = (0, client_1.gql) `
13
13
  }
14
14
  `;
15
15
  exports.OSCE_STATION_FIELDS = (0, client_1.gql) `
16
- ${picture_1.OSCE_PICTURE_FIELDS}
16
+ ${picture_1.PICTURE_FIELDS}
17
17
  ${exports.OSCE_STATION_MARK_FIELDS}
18
18
  fragment OsceStationFields on OsceStation {
19
19
  id
20
20
  updatedAt
21
- deleted
22
21
  name
23
22
  osceType {
24
23
  id
@@ -37,16 +36,16 @@ exports.OSCE_STATION_FIELDS = (0, client_1.gql) `
37
36
  name
38
37
  }
39
38
  candidatePictures {
40
- ...OscePictureFields
39
+ ...PictureFields
41
40
  }
42
41
  actorPictures {
43
- ...OscePictureFields
42
+ ...PictureFields
44
43
  }
45
44
  examinerPictures {
46
- ...OscePictureFields
45
+ ...PictureFields
47
46
  }
48
47
  walkthroughPictures {
49
- ...OscePictureFields
48
+ ...PictureFields
50
49
  }
51
50
  videos {
52
51
  id
@@ -1,3 +1 @@
1
1
  export declare const PICTURE_FIELDS: import("@apollo/client").DocumentNode;
2
- export declare const OSCE_PICTURE_FIELDS: import("@apollo/client").DocumentNode;
3
- export declare const CHAPTER_PICTURE_FIELDS: import("@apollo/client").DocumentNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHAPTER_PICTURE_FIELDS = exports.OSCE_PICTURE_FIELDS = exports.PICTURE_FIELDS = void 0;
3
+ exports.PICTURE_FIELDS = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  exports.PICTURE_FIELDS = (0, client_1.gql) `
6
6
  fragment PictureFields on Picture {
@@ -20,25 +20,3 @@ exports.PICTURE_FIELDS = (0, client_1.gql) `
20
20
  }
21
21
  }
22
22
  `;
23
- exports.OSCE_PICTURE_FIELDS = (0, client_1.gql) `
24
- ${exports.PICTURE_FIELDS}
25
- fragment OscePictureFields on OscePicture {
26
- id
27
- osceStationId
28
- pictureId
29
- picture {
30
- ...PictureFields
31
- }
32
- }
33
- `;
34
- exports.CHAPTER_PICTURE_FIELDS = (0, client_1.gql) `
35
- ${exports.PICTURE_FIELDS}
36
- fragment ChapterPictureFields on ChapterPicture {
37
- id
38
- pictureId
39
- chapterId
40
- picture {
41
- ...PictureFields
42
- }
43
- }
44
- `;
@@ -5,6 +5,8 @@ const client_1 = require("@apollo/client");
5
5
  exports.USER_FIELDS = (0, client_1.gql) `
6
6
  fragment UserFields on User {
7
7
  id
8
+ createdAt
9
+ updatedAt
8
10
  username
9
11
  firstName
10
12
  lastName
@@ -22,5 +24,16 @@ exports.USER_FIELDS = (0, client_1.gql) `
22
24
  # TODO: Remove this from backwards compatibility
23
25
  stripePriceNickname
24
26
  stripeSubscriptionEndDate
27
+
28
+ # user-specific keys
29
+ # marksheets
30
+ # marksheetsCount
31
+ # completedQuestionsCount
32
+ # completedCorrectQuestionsCount
33
+ # completedIncorrectQuestionsCount
34
+ # completedCardsCount
35
+ # completedGreenCardsCount
36
+ # completedYellowCardsCount
37
+ # completedRedCardsCount
25
38
  }
26
39
  `;
@@ -13,7 +13,7 @@ exports.VIDEO_FILE_FIELDS = (0, client_1.gql) `
13
13
  }
14
14
  `;
15
15
  exports.VIDEO_FIELDS = (0, client_1.gql) `
16
- ${picture_1.CHAPTER_PICTURE_FIELDS}
16
+ ${picture_1.PICTURE_FIELDS}
17
17
  fragment VideoFields on Video {
18
18
  id
19
19
  title
@@ -33,7 +33,7 @@ exports.VIDEO_FIELDS = (0, client_1.gql) `
33
33
  explanation
34
34
  typeId
35
35
  pictures {
36
- ...ChapterPictureFields
36
+ ...PictureFields
37
37
  }
38
38
  files {
39
39
  ...VideoFileFields
@@ -53,5 +53,6 @@ exports.VIDEO_FIELDS = (0, client_1.gql) `
53
53
  files {
54
54
  ...VideoFileFields
55
55
  }
56
+ viewsToday
56
57
  }
57
58
  `;