@tuturuuu/internal-api 0.0.2 → 0.1.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 (108) hide show
  1. package/dist/ai-memory.d.ts +76 -0
  2. package/dist/ai-memory.d.ts.map +1 -0
  3. package/dist/ai-memory.js +59 -0
  4. package/dist/ai.d.ts +67 -3
  5. package/dist/ai.d.ts.map +1 -1
  6. package/dist/ai.js +121 -0
  7. package/dist/auth.d.ts +121 -1
  8. package/dist/auth.d.ts.map +1 -1
  9. package/dist/auth.js +111 -0
  10. package/dist/calendar.d.ts +17 -1
  11. package/dist/calendar.d.ts.map +1 -1
  12. package/dist/calendar.js +9 -0
  13. package/dist/chat-conversations.d.ts +81 -0
  14. package/dist/chat-conversations.d.ts.map +1 -0
  15. package/dist/chat-conversations.js +384 -0
  16. package/dist/chat-internal.d.ts +11 -0
  17. package/dist/chat-internal.d.ts.map +1 -0
  18. package/dist/chat-internal.js +39 -0
  19. package/dist/chat-legacy.d.ts +23 -0
  20. package/dist/chat-legacy.d.ts.map +1 -0
  21. package/dist/chat-legacy.js +68 -0
  22. package/dist/chat-types.d.ts +262 -0
  23. package/dist/chat-types.d.ts.map +1 -0
  24. package/dist/chat-types.js +2 -0
  25. package/dist/chat.d.ts +3 -45
  26. package/dist/chat.d.ts.map +1 -1
  27. package/dist/chat.js +17 -65
  28. package/dist/client.d.ts +5 -0
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +50 -5
  31. package/dist/education.d.ts +288 -2
  32. package/dist/education.d.ts.map +1 -1
  33. package/dist/education.js +176 -0
  34. package/dist/external-project-team.d.ts +51 -0
  35. package/dist/external-project-team.d.ts.map +1 -0
  36. package/dist/external-project-team.js +137 -0
  37. package/dist/external-projects.d.ts +98 -10
  38. package/dist/external-projects.d.ts.map +1 -1
  39. package/dist/external-projects.js +92 -33
  40. package/dist/finance.d.ts +491 -3
  41. package/dist/finance.d.ts.map +1 -1
  42. package/dist/finance.js +611 -1
  43. package/dist/hive.d.ts +739 -0
  44. package/dist/hive.d.ts.map +1 -0
  45. package/dist/hive.js +333 -0
  46. package/dist/index.d.ts +31 -17
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +350 -8
  49. package/dist/infrastructure.d.ts +955 -1
  50. package/dist/infrastructure.d.ts.map +1 -1
  51. package/dist/infrastructure.js +595 -0
  52. package/dist/inventory.d.ts +355 -0
  53. package/dist/inventory.d.ts.map +1 -0
  54. package/dist/inventory.js +268 -0
  55. package/dist/mail.d.ts +125 -0
  56. package/dist/mail.d.ts.map +1 -1
  57. package/dist/mail.js +112 -1
  58. package/dist/meet.d.ts +54 -0
  59. package/dist/meet.d.ts.map +1 -0
  60. package/dist/meet.js +37 -0
  61. package/dist/mind.d.ts +55 -0
  62. package/dist/mind.d.ts.map +1 -0
  63. package/dist/mind.js +84 -0
  64. package/dist/posts.d.ts +33 -0
  65. package/dist/posts.d.ts.map +1 -1
  66. package/dist/posts.js +42 -0
  67. package/dist/promotions.d.ts +54 -0
  68. package/dist/promotions.d.ts.map +1 -1
  69. package/dist/promotions.js +52 -0
  70. package/dist/settings.d.ts +28 -1
  71. package/dist/settings.d.ts.map +1 -1
  72. package/dist/settings.js +68 -0
  73. package/dist/storage.d.ts +32 -21
  74. package/dist/storage.d.ts.map +1 -1
  75. package/dist/storage.js +52 -32
  76. package/dist/tasks.d.ts +222 -4
  77. package/dist/tasks.d.ts.map +1 -1
  78. package/dist/tasks.js +202 -0
  79. package/dist/teach.d.ts +130 -0
  80. package/dist/teach.d.ts.map +1 -0
  81. package/dist/teach.js +110 -0
  82. package/dist/topic-announcements.d.ts +235 -0
  83. package/dist/topic-announcements.d.ts.map +1 -0
  84. package/dist/topic-announcements.js +182 -0
  85. package/dist/tulearn.d.ts +223 -0
  86. package/dist/tulearn.d.ts.map +1 -0
  87. package/dist/tulearn.js +97 -0
  88. package/dist/tutoring.d.ts +152 -0
  89. package/dist/tutoring.d.ts.map +1 -0
  90. package/dist/tutoring.js +58 -0
  91. package/dist/user-group-activity.d.ts +54 -0
  92. package/dist/user-group-activity.d.ts.map +1 -0
  93. package/dist/user-group-activity.js +11 -0
  94. package/dist/user-groups.d.ts +35 -0
  95. package/dist/user-groups.d.ts.map +1 -0
  96. package/dist/user-groups.js +84 -0
  97. package/dist/users.d.ts +83 -1
  98. package/dist/users.d.ts.map +1 -1
  99. package/dist/users.js +137 -0
  100. package/dist/workspace-configs.d.ts +2 -0
  101. package/dist/workspace-configs.d.ts.map +1 -1
  102. package/dist/workspace-configs.js +3 -1
  103. package/dist/workspace-user-audit.d.ts +1 -0
  104. package/dist/workspace-user-audit.d.ts.map +1 -1
  105. package/dist/workspaces.d.ts +57 -0
  106. package/dist/workspaces.d.ts.map +1 -1
  107. package/dist/workspaces.js +58 -1
  108. package/package.json +59 -6
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTulearnBootstrap = getTulearnBootstrap;
4
+ exports.getTulearnHome = getTulearnHome;
5
+ exports.listTulearnCourses = listTulearnCourses;
6
+ exports.getTulearnCourse = getTulearnCourse;
7
+ exports.getTulearnCourseModule = getTulearnCourseModule;
8
+ exports.getTulearnPractice = getTulearnPractice;
9
+ exports.submitTulearnPractice = submitTulearnPractice;
10
+ exports.listTulearnAssignments = listTulearnAssignments;
11
+ exports.completeTulearnAssignment = completeTulearnAssignment;
12
+ exports.listTulearnReports = listTulearnReports;
13
+ exports.listTulearnMarks = listTulearnMarks;
14
+ exports.updateTulearnProfile = updateTulearnProfile;
15
+ exports.getSharedCourseContent = getSharedCourseContent;
16
+ exports.listSharedCourses = listSharedCourses;
17
+ const client_1 = require("./client");
18
+ function studentQuery(studentId) {
19
+ return studentId ? { studentId } : undefined;
20
+ }
21
+ async function getTulearnBootstrap(options) {
22
+ const client = (0, client_1.getInternalApiClient)(options);
23
+ return client.json('/api/v1/tulearn/bootstrap', {
24
+ cache: 'no-store',
25
+ });
26
+ }
27
+ async function getTulearnHome(workspaceId, studentId, options) {
28
+ const client = (0, client_1.getInternalApiClient)(options);
29
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/home`, { cache: 'no-store', query: studentQuery(studentId) });
30
+ }
31
+ async function listTulearnCourses(workspaceId, studentId, options) {
32
+ const client = (0, client_1.getInternalApiClient)(options);
33
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/courses`, { cache: 'no-store', query: studentQuery(studentId) });
34
+ }
35
+ async function getTulearnCourse(workspaceId, courseId, studentId, options) {
36
+ const client = (0, client_1.getInternalApiClient)(options);
37
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/courses/${(0, client_1.encodePathSegment)(courseId)}`, { cache: 'no-store', query: studentQuery(studentId) });
38
+ }
39
+ async function getTulearnCourseModule(workspaceId, courseId, moduleId, studentId, options) {
40
+ const client = (0, client_1.getInternalApiClient)(options);
41
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/courses/${(0, client_1.encodePathSegment)(courseId)}/modules/${(0, client_1.encodePathSegment)(moduleId)}`, { cache: 'no-store', query: studentQuery(studentId) });
42
+ }
43
+ async function getTulearnPractice(workspaceId, studentId, options) {
44
+ const client = (0, client_1.getInternalApiClient)(options);
45
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/practice`, { cache: 'no-store', query: studentQuery(studentId) });
46
+ }
47
+ async function submitTulearnPractice(workspaceId, payload, studentId, options) {
48
+ const client = (0, client_1.getInternalApiClient)(options);
49
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/practice`, {
50
+ method: 'POST',
51
+ headers: { 'Content-Type': 'application/json' },
52
+ body: JSON.stringify(payload),
53
+ cache: 'no-store',
54
+ query: studentQuery(studentId),
55
+ });
56
+ }
57
+ async function listTulearnAssignments(workspaceId, studentId, options) {
58
+ const client = (0, client_1.getInternalApiClient)(options);
59
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/assignments`, { cache: 'no-store', query: studentQuery(studentId) });
60
+ }
61
+ async function completeTulearnAssignment(workspaceId, payload, studentId, options) {
62
+ const client = (0, client_1.getInternalApiClient)(options);
63
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/assignments`, {
64
+ method: 'PATCH',
65
+ headers: { 'Content-Type': 'application/json' },
66
+ body: JSON.stringify(payload),
67
+ cache: 'no-store',
68
+ query: studentQuery(studentId),
69
+ });
70
+ }
71
+ async function listTulearnReports(workspaceId, studentId, options) {
72
+ const client = (0, client_1.getInternalApiClient)(options);
73
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/reports`, { cache: 'no-store', query: studentQuery(studentId) });
74
+ }
75
+ async function listTulearnMarks(workspaceId, studentId, options) {
76
+ const client = (0, client_1.getInternalApiClient)(options);
77
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tulearn/marks`, { cache: 'no-store', query: studentQuery(studentId) });
78
+ }
79
+ async function updateTulearnProfile(payload, options) {
80
+ const client = (0, client_1.getInternalApiClient)(options);
81
+ return client.json('/api/v1/users/me/profile', {
82
+ body: JSON.stringify({ display_name: payload.displayName }),
83
+ cache: 'no-store',
84
+ headers: { 'Content-Type': 'application/json' },
85
+ method: 'PATCH',
86
+ });
87
+ }
88
+ async function getSharedCourseContent(courseId, options) {
89
+ const client = (0, client_1.getInternalApiClient)(options);
90
+ return client.json('/api/v1/course', {
91
+ cache: 'no-store',
92
+ query: { courseId },
93
+ });
94
+ }
95
+ async function listSharedCourses(wsId, studentId, options) {
96
+ return listTulearnCourses(wsId, studentId, options);
97
+ }
@@ -0,0 +1,152 @@
1
+ import { type InternalApiClientOptions, type InternalApiQuery } from './client';
2
+ export type TutoringReasonType = 'ABSENT_RECOVERY' | 'WEAK_SUPPORT' | 'CUSTOM';
3
+ export type TutoringAttendanceStatus = 'PENDING' | 'DONE' | 'NO_SHOW' | 'CANCELLED';
4
+ export interface TutoringSessionRecord {
5
+ id: string;
6
+ group_id: string;
7
+ student_user_id: string;
8
+ teacher_user_id: string | null;
9
+ session_date: string;
10
+ start_time: string;
11
+ duration_minutes: number;
12
+ reason_type: TutoringReasonType;
13
+ reason_detail: string;
14
+ content: string;
15
+ attendance_status: TutoringAttendanceStatus;
16
+ parent_message_preview: string;
17
+ source_feedback_id: string | null;
18
+ resolved_at: string | null;
19
+ created_at: string;
20
+ updated_at: string;
21
+ group: {
22
+ id: string;
23
+ name: string | null;
24
+ } | null;
25
+ student: {
26
+ id: string;
27
+ full_name: string | null;
28
+ display_name: string | null;
29
+ email: string | null;
30
+ } | null;
31
+ teacher: {
32
+ id: string;
33
+ full_name: string | null;
34
+ display_name: string | null;
35
+ email: string | null;
36
+ } | null;
37
+ }
38
+ export interface TutoringQueueItem {
39
+ group_id: string;
40
+ student_user_id: string;
41
+ group_name: string;
42
+ student_name: string;
43
+ reason_type: 'ABSENT_RECOVERY' | 'WEAK_SUPPORT' | 'BOTH';
44
+ absence_deficit: number;
45
+ feedback_content: string;
46
+ source_feedback_id: string | null;
47
+ }
48
+ export interface TutoringQueueSummary {
49
+ absent: number;
50
+ weak: number;
51
+ }
52
+ export interface TutoringDetailedExportRow {
53
+ id: string;
54
+ date: string;
55
+ time: string;
56
+ duration_minutes: number;
57
+ reason_type: TutoringReasonType;
58
+ attendance_status: TutoringAttendanceStatus;
59
+ content: string;
60
+ group_name: string;
61
+ student_name: string;
62
+ teacher_name: string;
63
+ }
64
+ export interface TutoringPayrollExportRow {
65
+ teacher_name: string;
66
+ completed_sessions: number;
67
+ total_minutes: number;
68
+ }
69
+ export interface ListTutoringSessionsParams extends InternalApiQuery {
70
+ fromDate?: string;
71
+ toDate?: string;
72
+ teacherId?: string;
73
+ groupId?: string;
74
+ studentUserId?: string;
75
+ reasonType?: TutoringReasonType;
76
+ attendanceStatus?: TutoringAttendanceStatus;
77
+ page?: number;
78
+ pageSize?: number;
79
+ }
80
+ export interface CreateTutoringSessionPayload {
81
+ groupId: string;
82
+ studentUserId: string;
83
+ teacherUserId?: string | null;
84
+ sessions?: {
85
+ sessionDate: string;
86
+ startTime: string;
87
+ durationMinutes: number;
88
+ teacherUserId?: string | null;
89
+ }[];
90
+ sessionDate?: string;
91
+ startTime?: string;
92
+ durationMinutes?: number;
93
+ sessionCount?: number;
94
+ reasonType: TutoringReasonType;
95
+ reasonDetail?: string;
96
+ content?: string;
97
+ attendanceStatus?: TutoringAttendanceStatus;
98
+ sourceFeedbackId?: string | null;
99
+ }
100
+ export interface UpdateTutoringSessionPayload {
101
+ teacherUserId?: string | null;
102
+ sessionDate?: string;
103
+ startTime?: string;
104
+ durationMinutes?: number;
105
+ reasonType?: TutoringReasonType;
106
+ reasonDetail?: string;
107
+ content?: string;
108
+ attendanceStatus?: TutoringAttendanceStatus;
109
+ parentMessagePreview?: string;
110
+ resolvedAt?: string | null;
111
+ }
112
+ export declare function listTutoringSessions(workspaceId: string, params?: ListTutoringSessionsParams, options?: InternalApiClientOptions): Promise<{
113
+ data: TutoringSessionRecord[];
114
+ count: number;
115
+ page: number;
116
+ pageSize: number;
117
+ totalPages: number;
118
+ }>;
119
+ export declare function createTutoringSession(workspaceId: string, payload: CreateTutoringSessionPayload, options?: InternalApiClientOptions): Promise<{
120
+ id: string | null;
121
+ ids: string[];
122
+ createdCount: number;
123
+ }>;
124
+ export declare function updateTutoringSession(workspaceId: string, sessionId: string, payload: UpdateTutoringSessionPayload, options?: InternalApiClientOptions): Promise<{
125
+ message: string;
126
+ }>;
127
+ export declare function markTutoringSession(workspaceId: string, sessionId: string, attendanceStatus: TutoringAttendanceStatus, options?: InternalApiClientOptions): Promise<{
128
+ message: string;
129
+ }>;
130
+ export declare function generateTutoringMessagePreview(workspaceId: string, sessionId: string, options?: InternalApiClientOptions): Promise<{
131
+ preview: string;
132
+ }>;
133
+ export declare function listTutoringQueue(workspaceId: string, params?: InternalApiQuery & {
134
+ page?: number;
135
+ pageSize?: number;
136
+ q?: string;
137
+ }, options?: InternalApiClientOptions): Promise<{
138
+ data: TutoringQueueItem[];
139
+ count: number;
140
+ page: number;
141
+ pageSize: number;
142
+ summary: TutoringQueueSummary;
143
+ totalPages: number;
144
+ }>;
145
+ export declare function exportTutoringSessions(workspaceId: string, params?: InternalApiQuery, options?: InternalApiClientOptions): Promise<{
146
+ mode: "detailed";
147
+ data: TutoringDetailedExportRow[];
148
+ } | {
149
+ mode: "payroll";
150
+ data: TutoringPayrollExportRow[];
151
+ }>;
152
+ //# sourceMappingURL=tutoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tutoring.d.ts","sourceRoot":"","sources":["../src/tutoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAC;AAC/E,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,MAAM,GACN,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,kBAAkB,CAAC;IAChC,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,EAAE,CAAC;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,4BAA4B;IAC3C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAMD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,0BAA+B,EACvC,OAAO,CAAC,EAAE,wBAAwB;UAI1B,qBAAqB,EAAE;WACtB,MAAM;UACP,MAAM;cACF,MAAM;gBACJ,MAAM;GAErB;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,4BAA4B,EACrC,OAAO,CAAC,EAAE,wBAAwB;QAI5B,MAAM,GAAG,IAAI;SACZ,MAAM,EAAE;kBACC,MAAM;GAMvB;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,4BAA4B,EACrC,OAAO,CAAC,EAAE,wBAAwB;aAGJ,MAAM;GAQrC;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,wBAAwB,EAC1C,OAAO,CAAC,EAAE,wBAAwB;aAGJ,MAAM;GAQrC;AAED,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB;aAGJ,MAAM;GAMrC;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,gBAAgB,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;CACP,EACN,OAAO,CAAC,EAAE,wBAAwB;UAI1B,iBAAiB,EAAE;WAClB,MAAM;UACP,MAAM;cACF,MAAM;aACP,oBAAoB;gBACjB,MAAM;GAKrB;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,gBAAqB,EAC7B,OAAO,CAAC,EAAE,wBAAwB;UAItB,UAAU;UAAQ,yBAAyB,EAAE;;UAC7C,SAAS;UAAQ,wBAAwB,EAAE;GAExD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listTutoringSessions = listTutoringSessions;
4
+ exports.createTutoringSession = createTutoringSession;
5
+ exports.updateTutoringSession = updateTutoringSession;
6
+ exports.markTutoringSession = markTutoringSession;
7
+ exports.generateTutoringMessagePreview = generateTutoringMessagePreview;
8
+ exports.listTutoringQueue = listTutoringQueue;
9
+ exports.exportTutoringSessions = exportTutoringSessions;
10
+ const client_1 = require("./client");
11
+ function basePath(workspaceId) {
12
+ return `/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/tutoring`;
13
+ }
14
+ async function listTutoringSessions(workspaceId, params = {}, options) {
15
+ const client = (0, client_1.getInternalApiClient)(options);
16
+ return client.json(`${basePath(workspaceId)}/sessions`, { cache: 'no-store', query: params });
17
+ }
18
+ async function createTutoringSession(workspaceId, payload, options) {
19
+ const client = (0, client_1.getInternalApiClient)(options);
20
+ return client.json(`${basePath(workspaceId)}/sessions`, {
21
+ method: 'POST',
22
+ headers: { 'Content-Type': 'application/json' },
23
+ body: JSON.stringify(payload),
24
+ });
25
+ }
26
+ async function updateTutoringSession(workspaceId, sessionId, payload, options) {
27
+ const client = (0, client_1.getInternalApiClient)(options);
28
+ return client.json(`${basePath(workspaceId)}/sessions/${(0, client_1.encodePathSegment)(sessionId)}`, {
29
+ method: 'PUT',
30
+ headers: { 'Content-Type': 'application/json' },
31
+ body: JSON.stringify(payload),
32
+ });
33
+ }
34
+ async function markTutoringSession(workspaceId, sessionId, attendanceStatus, options) {
35
+ const client = (0, client_1.getInternalApiClient)(options);
36
+ return client.json(`${basePath(workspaceId)}/sessions/${(0, client_1.encodePathSegment)(sessionId)}/mark`, {
37
+ method: 'POST',
38
+ headers: { 'Content-Type': 'application/json' },
39
+ body: JSON.stringify({ attendanceStatus }),
40
+ });
41
+ }
42
+ async function generateTutoringMessagePreview(workspaceId, sessionId, options) {
43
+ const client = (0, client_1.getInternalApiClient)(options);
44
+ return client.json(`${basePath(workspaceId)}/sessions/${(0, client_1.encodePathSegment)(sessionId)}/message-preview`, {
45
+ method: 'POST',
46
+ });
47
+ }
48
+ async function listTutoringQueue(workspaceId, params = {}, options) {
49
+ const client = (0, client_1.getInternalApiClient)(options);
50
+ return client.json(`${basePath(workspaceId)}/queue`, {
51
+ cache: 'no-store',
52
+ query: params,
53
+ });
54
+ }
55
+ async function exportTutoringSessions(workspaceId, params = {}, options) {
56
+ const client = (0, client_1.getInternalApiClient)(options);
57
+ return client.json(`${basePath(workspaceId)}/export`, { cache: 'no-store', query: params });
58
+ }
@@ -0,0 +1,54 @@
1
+ import { type InternalApiClientOptions, type InternalApiQuery } from './client';
2
+ export interface UserGroupActivityEventResponse {
3
+ auditRecordId: number;
4
+ tableName: string | null;
5
+ action: 'created' | 'updated' | 'deleted' | 'archived' | 'reactivated' | 'reordered' | 'uploaded' | 'removed' | 'restored' | 'role_updated';
6
+ resourceType: 'group' | 'membership' | 'tag' | 'default_included_group' | 'post' | 'post_log' | 'post_check' | 'attendance' | 'linked_product' | 'metric' | 'metric_category' | 'metric_category_link' | 'student_metric_value' | 'monthly_report' | 'monthly_report_log' | 'feedback' | 'course_module' | 'course_module_group' | 'course_module_group_order' | 'course_module_order' | 'resource';
7
+ resourceId: string | null;
8
+ resourceLabel: string | null;
9
+ summary: string;
10
+ changedFields: string[];
11
+ fieldChanges: Array<{
12
+ field: string;
13
+ label: string;
14
+ before: string | null;
15
+ after: string | null;
16
+ }>;
17
+ before: Record<string, string | null>;
18
+ after: Record<string, string | null>;
19
+ group: {
20
+ id: string | null;
21
+ name: string | null;
22
+ };
23
+ affectedUser: {
24
+ id: string | null;
25
+ name: string | null;
26
+ email: string | null;
27
+ } | null;
28
+ actor: {
29
+ authUid: string | null;
30
+ workspaceUserId: string | null;
31
+ id: string | null;
32
+ name: string | null;
33
+ email: string | null;
34
+ };
35
+ occurredAt: string;
36
+ }
37
+ export interface UserGroupActivityLogsResponse {
38
+ data: UserGroupActivityEventResponse[];
39
+ count: number;
40
+ }
41
+ export interface UserGroupActivityLogQuery extends InternalApiQuery {
42
+ start: string;
43
+ end: string;
44
+ groupId?: string;
45
+ resourceType?: UserGroupActivityEventResponse['resourceType'] | 'all';
46
+ action?: UserGroupActivityEventResponse['action'] | 'all';
47
+ affectedUserQuery?: string;
48
+ actorQuery?: string;
49
+ query?: string;
50
+ offset?: number;
51
+ limit?: number;
52
+ }
53
+ export declare function listUserGroupActivityLogs(workspaceId: string, query: UserGroupActivityLogQuery, options?: InternalApiClientOptions): Promise<UserGroupActivityLogsResponse>;
54
+ //# sourceMappingURL=user-group-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-group-activity.d.ts","sourceRoot":"","sources":["../src/user-group-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,8BAA8B;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EACF,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,SAAS,GACT,UAAU,GACV,cAAc,CAAC;IACnB,YAAY,EACR,OAAO,GACP,YAAY,GACZ,KAAK,GACL,wBAAwB,GACxB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,iBAAiB,GACjB,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,GAChB,oBAAoB,GACpB,UAAU,GACV,eAAe,GACf,qBAAqB,GACrB,2BAA2B,GAC3B,qBAAqB,GACrB,UAAU,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACrC,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,GAAG,IAAI,CAAC;IACT,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,8BAA8B,EAAE,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,8BAA8B,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;IACtE,MAAM,CAAC,EAAE,8BAA8B,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,yBAAyB,EAChC,OAAO,CAAC,EAAE,wBAAwB,0CAWnC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listUserGroupActivityLogs = listUserGroupActivityLogs;
4
+ const client_1 = require("./client");
5
+ async function listUserGroupActivityLogs(workspaceId, query, options) {
6
+ const client = (0, client_1.getInternalApiClient)(options);
7
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/user-groups/activity-logs`, {
8
+ cache: 'no-store',
9
+ query,
10
+ });
11
+ }
@@ -0,0 +1,35 @@
1
+ import type { UserGroup } from '@tuturuuu/types/primitives/UserGroup';
2
+ import { type InternalApiClientOptions } from './client';
3
+ export type UserGroupStatusFilter = 'all' | 'active' | 'archived';
4
+ export type WorkspaceUserGroupsParams = {
5
+ ids?: string[];
6
+ includeArchived?: boolean;
7
+ page?: number;
8
+ pageSize?: number;
9
+ q?: string;
10
+ status?: UserGroupStatusFilter;
11
+ userId?: string;
12
+ };
13
+ export type WorkspaceUserGroupsResponse = {
14
+ count: number;
15
+ data: UserGroup[];
16
+ error?: boolean;
17
+ errorMessage?: string;
18
+ };
19
+ export type WorkspaceUserGroupsPageResponse = WorkspaceUserGroupsResponse & {
20
+ page: number;
21
+ pageSize: number;
22
+ };
23
+ export type RemoveWorkspaceUserGroupIndicatorCategoryResponse = {
24
+ message: string;
25
+ };
26
+ export declare function getNextWorkspaceUserGroupsPageParam<TPage extends {
27
+ count: number;
28
+ data: unknown[];
29
+ pageSize: number;
30
+ }>(lastPage: TPage, allPages: TPage[]): number | undefined;
31
+ export declare function listWorkspaceUserGroups(workspaceId: string, params?: WorkspaceUserGroupsParams, options?: InternalApiClientOptions): Promise<WorkspaceUserGroupsPageResponse>;
32
+ export declare function listAllWorkspaceUserGroups(workspaceId: string, params?: Omit<WorkspaceUserGroupsParams, 'page' | 'pageSize'>, options?: InternalApiClientOptions): Promise<UserGroup[]>;
33
+ export declare function listWorkspaceUserGroupsByIds(workspaceId: string, groupIds: string[], options?: InternalApiClientOptions): Promise<UserGroup[]>;
34
+ export declare function removeWorkspaceUserGroupIndicatorCategory(workspaceId: string, groupId: string, categoryId: string, options?: InternalApiClientOptions): Promise<RemoveWorkspaceUserGroupIndicatorCategoryResponse>;
35
+ //# sourceMappingURL=user-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-groups.d.ts","sourceRoot":"","sources":["../src/user-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,2BAA2B,GAAG;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iDAAiD,GAAG;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,wBAAgB,mCAAmC,CACjD,KAAK,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAClE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAenC;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,yBAA8B,EACtC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,+BAA+B,CAAC,CAgC1C;AAED,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,IAAI,CAAC,yBAAyB,EAAE,MAAM,GAAG,UAAU,CAAM,EACjE,OAAO,CAAC,EAAE,wBAAwB,wBA6BnC;AAED,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,CAAC,EAAE,wBAAwB,wBAkBnC;AAED,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,wBAAwB,8DAOnC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNextWorkspaceUserGroupsPageParam = getNextWorkspaceUserGroupsPageParam;
4
+ exports.listWorkspaceUserGroups = listWorkspaceUserGroups;
5
+ exports.listAllWorkspaceUserGroups = listAllWorkspaceUserGroups;
6
+ exports.listWorkspaceUserGroupsByIds = listWorkspaceUserGroupsByIds;
7
+ exports.removeWorkspaceUserGroupIndicatorCategory = removeWorkspaceUserGroupIndicatorCategory;
8
+ const client_1 = require("./client");
9
+ const DEFAULT_PAGE_SIZE = 50;
10
+ const ALL_GROUPS_PAGE_SIZE = 200;
11
+ function resolveStatus(params) {
12
+ return params.status ?? (params.includeArchived ? 'all' : 'active');
13
+ }
14
+ function getNextWorkspaceUserGroupsPageParam(lastPage, allPages) {
15
+ if (lastPage.data.length === 0 || lastPage.data.length < lastPage.pageSize) {
16
+ return undefined;
17
+ }
18
+ const loadedCount = allPages.reduce((total, currentPage) => total + currentPage.data.length, 0);
19
+ if (loadedCount >= lastPage.count) {
20
+ return undefined;
21
+ }
22
+ return allPages.length + 1;
23
+ }
24
+ async function listWorkspaceUserGroups(workspaceId, params = {}, options) {
25
+ const client = (0, client_1.getInternalApiClient)(options);
26
+ const page = params.page ?? 1;
27
+ const pageSize = params.pageSize ?? DEFAULT_PAGE_SIZE;
28
+ const status = resolveStatus(params);
29
+ const payload = await client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/users/groups`, {
30
+ cache: 'no-store',
31
+ query: {
32
+ ids: params.ids?.join(','),
33
+ page,
34
+ pageSize,
35
+ q: params.q,
36
+ status: status === 'active' ? undefined : status,
37
+ userId: params.userId,
38
+ },
39
+ });
40
+ if (payload.error) {
41
+ throw new Error(payload.errorMessage || 'Failed to fetch workspace user groups');
42
+ }
43
+ return {
44
+ ...payload,
45
+ page,
46
+ pageSize,
47
+ };
48
+ }
49
+ async function listAllWorkspaceUserGroups(workspaceId, params = {}, options) {
50
+ const groups = [];
51
+ const pages = [];
52
+ let page = 1;
53
+ while (true) {
54
+ const payload = await listWorkspaceUserGroups(workspaceId, {
55
+ ...params,
56
+ page,
57
+ pageSize: ALL_GROUPS_PAGE_SIZE,
58
+ }, options);
59
+ pages.push(payload);
60
+ groups.push(...payload.data);
61
+ const nextPage = getNextWorkspaceUserGroupsPageParam(payload, pages);
62
+ if (nextPage === undefined) {
63
+ break;
64
+ }
65
+ page = nextPage;
66
+ }
67
+ return groups;
68
+ }
69
+ async function listWorkspaceUserGroupsByIds(workspaceId, groupIds, options) {
70
+ if (groupIds.length === 0) {
71
+ return [];
72
+ }
73
+ const payload = await listWorkspaceUserGroups(workspaceId, {
74
+ ids: groupIds,
75
+ page: 1,
76
+ pageSize: Math.max(groupIds.length, 1),
77
+ status: 'all',
78
+ }, options);
79
+ return payload.data;
80
+ }
81
+ function removeWorkspaceUserGroupIndicatorCategory(workspaceId, groupId, categoryId, options) {
82
+ const client = (0, client_1.getInternalApiClient)(options);
83
+ return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/user-groups/${(0, client_1.encodePathSegment)(groupId)}/indicators/categories/${(0, client_1.encodePathSegment)(categoryId)}`, { cache: 'no-store', method: 'DELETE' });
84
+ }
package/dist/users.d.ts CHANGED
@@ -2,6 +2,23 @@ import { type InternalApiClientOptions } from './client';
2
2
  type UserConfigResponse = {
3
3
  value: string | null;
4
4
  };
5
+ type UserWorkspaceConfigResponse = {
6
+ value: string | null;
7
+ };
8
+ export declare const SHOW_VERSION_BADGE_CONFIG_ID = "SHOW_VERSION_BADGE";
9
+ export type RootNavigationTarget = 'workspace_home' | 'tasks' | 'calendar' | 'finance';
10
+ export type RootNavigationConfig = {
11
+ target: RootNavigationTarget;
12
+ submodule?: string;
13
+ boardId?: string;
14
+ };
15
+ export type NormalizedRootNavigationConfig = {
16
+ target: RootNavigationTarget;
17
+ submodule: string;
18
+ boardId: string;
19
+ };
20
+ export declare function parseRootNavigationConfig(raw: unknown): RootNavigationConfig;
21
+ export declare function normalizeRootNavigationConfig(raw: unknown): NormalizedRootNavigationConfig;
5
22
  export type CurrentUserProfileResponse = {
6
23
  id: string;
7
24
  email: string | null;
@@ -17,6 +34,11 @@ export type CurrentUserDefaultWorkspaceResponse = {
17
34
  name: string;
18
35
  personal?: boolean | null;
19
36
  } | null;
37
+ export type CurrentUserHiveAccessResponse = {
38
+ hasAccess: boolean;
39
+ isAdmin: boolean;
40
+ isMember: boolean;
41
+ };
20
42
  export interface WorkspaceAttendanceExportRecord {
21
43
  date: string;
22
44
  groupId: string;
@@ -34,6 +56,44 @@ export interface ListWorkspaceAttendanceExportResponse {
34
56
  data: WorkspaceAttendanceExportRecord[];
35
57
  nextOffset?: number;
36
58
  }
59
+ export interface WorkspaceBasicUserRecord {
60
+ id: string;
61
+ full_name: string | null;
62
+ display_name: string | null;
63
+ email: string | null;
64
+ avatar_url?: string | null;
65
+ archived?: boolean | null;
66
+ }
67
+ export interface ListWorkspaceBasicUsersResponse {
68
+ count: number;
69
+ data: WorkspaceBasicUserRecord[];
70
+ }
71
+ export type WorkspaceUserPlatformLinkRepairSkipReason = 'missing_email' | 'no_member_match' | 'ambiguous_workspace_profile' | 'ambiguous_platform_match' | 'already_linked' | 'platform_already_linked';
72
+ export interface WorkspaceUserPlatformLinkRepairPayload {
73
+ workspaceUserId?: string;
74
+ }
75
+ export interface WorkspaceUserPlatformLinkRepairLinkedUser {
76
+ email: string;
77
+ platformUserId: string;
78
+ workspaceUserId: string;
79
+ workspaceUserName: string | null;
80
+ }
81
+ export interface WorkspaceUserPlatformLinkRepairSkippedUser {
82
+ detail?: string;
83
+ email: string | null;
84
+ reason: WorkspaceUserPlatformLinkRepairSkipReason;
85
+ workspaceUserId: string;
86
+ workspaceUserName: string | null;
87
+ }
88
+ export interface WorkspaceUserPlatformLinkRepairResponse {
89
+ linked: WorkspaceUserPlatformLinkRepairLinkedUser[];
90
+ skipped: WorkspaceUserPlatformLinkRepairSkippedUser[];
91
+ summary: {
92
+ linked: number;
93
+ scanned: number;
94
+ skipped: number;
95
+ };
96
+ }
37
97
  export type UpdateCurrentUserDefaultWorkspaceResponse = {
38
98
  success: boolean;
39
99
  };
@@ -51,6 +111,13 @@ export type UpdateCurrentUserProfilePayload = {
51
111
  display_name?: string | null;
52
112
  full_name?: string | null;
53
113
  };
114
+ export type UpdatePlatformUserRolesPayload = {
115
+ allow_challenge_management: boolean;
116
+ allow_manage_all_challenges: boolean;
117
+ allow_role_management: boolean;
118
+ allow_workspace_creation: boolean;
119
+ enabled: boolean;
120
+ };
54
121
  export interface CreateSupportInquiryPayload {
55
122
  name: string;
56
123
  email: string;
@@ -60,14 +127,23 @@ export interface CreateSupportInquiryPayload {
60
127
  message: string;
61
128
  }
62
129
  export declare function getUserConfig(configId: string, options?: InternalApiClientOptions): Promise<UserConfigResponse>;
63
- export declare function updateUserConfig(configId: string, value: string, options?: InternalApiClientOptions): Promise<{
130
+ export declare function updateUserConfig(configId: string, value: string | null, options?: InternalApiClientOptions): Promise<{
131
+ message: string;
132
+ }>;
133
+ export declare function getUserWorkspaceConfig(workspaceId: string, configId: string, options?: InternalApiClientOptions): Promise<UserWorkspaceConfigResponse>;
134
+ export declare function updateUserWorkspaceConfig(workspaceId: string, configId: string, value: string | null, options?: InternalApiClientOptions): Promise<{
64
135
  message: string;
65
136
  }>;
66
137
  export declare function getCurrentUserProfile(options?: InternalApiClientOptions): Promise<CurrentUserProfileResponse>;
67
138
  export declare function getCurrentUserDefaultWorkspace(options?: InternalApiClientOptions): Promise<CurrentUserDefaultWorkspaceResponse>;
139
+ export declare function getCurrentUserHiveAccess(options?: InternalApiClientOptions): Promise<CurrentUserHiveAccessResponse>;
68
140
  export declare function updateCurrentUserDefaultWorkspace(workspaceId: string | null, options?: InternalApiClientOptions): Promise<UpdateCurrentUserDefaultWorkspaceResponse>;
69
141
  export declare function createCurrentUserAvatarUploadUrl(filename: string, options?: InternalApiClientOptions): Promise<CurrentUserAvatarUploadUrlResponse>;
70
142
  export declare function updateCurrentUserProfile(payload: UpdateCurrentUserProfilePayload, options?: InternalApiClientOptions): Promise<CurrentUserProfileResponse>;
143
+ export declare function updatePlatformUserRoles(userId: string, payload: UpdatePlatformUserRolesPayload, options?: InternalApiClientOptions): Promise<{
144
+ data: unknown;
145
+ message: string;
146
+ }>;
71
147
  export declare function uploadCurrentUserAvatar(file: File, filename?: string, options?: InternalApiClientOptions): Promise<UploadCurrentUserAvatarResult>;
72
148
  export declare function removeCurrentUserAvatar(options?: InternalApiClientOptions): Promise<void>;
73
149
  export declare function getUserCalendarSettings(options?: InternalApiClientOptions): Promise<{
@@ -85,5 +161,11 @@ export declare function listWorkspaceAttendanceExportRecords(workspaceId: string
85
161
  offset?: number;
86
162
  startDate: string;
87
163
  }, options?: InternalApiClientOptions): Promise<ListWorkspaceAttendanceExportResponse>;
164
+ export declare function listWorkspaceBasicUsers(workspaceId: string, { from, limit, q, }?: {
165
+ from?: number;
166
+ limit?: number;
167
+ q?: string;
168
+ }, options?: InternalApiClientOptions): Promise<ListWorkspaceBasicUsersResponse>;
169
+ export declare function repairWorkspaceUserPlatformLinks(workspaceId: string, payload?: WorkspaceUserPlatformLinkRepairPayload, options?: InternalApiClientOptions): Promise<WorkspaceUserPlatformLinkRepairResponse>;
88
170
  export {};
89
171
  //# sourceMappingURL=users.d.ts.map