nazar-salary 2.8.0 → 2.8.2
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.
- package/index.d.ts +89 -1
- package/index.js +37 -0
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -979,6 +979,46 @@ declare module 'nazar-salary' {
|
|
|
979
979
|
students: StudentListItem[];
|
|
980
980
|
}
|
|
981
981
|
|
|
982
|
+
export interface StoppedStudentsParams {
|
|
983
|
+
search?: string;
|
|
984
|
+
manager_id?: number;
|
|
985
|
+
teacher_id?: number;
|
|
986
|
+
stop_reason?: string;
|
|
987
|
+
page?: number;
|
|
988
|
+
limit?: number;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
export interface StoppedStudentItem {
|
|
992
|
+
id: number;
|
|
993
|
+
first_name: string;
|
|
994
|
+
last_name: string;
|
|
995
|
+
phone: string;
|
|
996
|
+
age: number;
|
|
997
|
+
created_at: number;
|
|
998
|
+
history_id: number;
|
|
999
|
+
price_id: number;
|
|
1000
|
+
teacher_id: number;
|
|
1001
|
+
owned_by: number;
|
|
1002
|
+
manager_name: string;
|
|
1003
|
+
enrollment_months: number;
|
|
1004
|
+
total_lessons: number;
|
|
1005
|
+
completed_lessons: number;
|
|
1006
|
+
remaining_lessons: number;
|
|
1007
|
+
main_course: string;
|
|
1008
|
+
group_name: string | null;
|
|
1009
|
+
lesson_group_id: number | null;
|
|
1010
|
+
stop_reason: string;
|
|
1011
|
+
stop_comment: string | null;
|
|
1012
|
+
finished_at: number;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
export interface StoppedStudentsResponse {
|
|
1016
|
+
total_students: number;
|
|
1017
|
+
current_page: number;
|
|
1018
|
+
total_pages: number;
|
|
1019
|
+
students: StoppedStudentItem[];
|
|
1020
|
+
}
|
|
1021
|
+
|
|
982
1022
|
export interface StudentsListParams {
|
|
983
1023
|
manager_id?: number;
|
|
984
1024
|
prepayment?: boolean;
|
|
@@ -1066,6 +1106,51 @@ declare module 'nazar-salary' {
|
|
|
1066
1106
|
total_purchase_amount: number;
|
|
1067
1107
|
}
|
|
1068
1108
|
|
|
1109
|
+
export interface DeleteStudentResponse {
|
|
1110
|
+
message: string;
|
|
1111
|
+
student_id: number;
|
|
1112
|
+
deleted_at: number;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
export interface AllStudentsParams {
|
|
1116
|
+
teacher_id?: number;
|
|
1117
|
+
page?: number;
|
|
1118
|
+
limit?: number;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
export interface AllStudentItem {
|
|
1122
|
+
id: number;
|
|
1123
|
+
first_name: string;
|
|
1124
|
+
last_name: string;
|
|
1125
|
+
phone: string;
|
|
1126
|
+
age: number;
|
|
1127
|
+
operation_numbers: string[];
|
|
1128
|
+
total_purchase_amount: number;
|
|
1129
|
+
prepayment: boolean;
|
|
1130
|
+
is_verified: boolean;
|
|
1131
|
+
price_id: number;
|
|
1132
|
+
teacher_id: number;
|
|
1133
|
+
owned_by: number;
|
|
1134
|
+
manager_name: string;
|
|
1135
|
+
enrollment_months: number;
|
|
1136
|
+
total_lessons: number;
|
|
1137
|
+
completed_lessons: number;
|
|
1138
|
+
main_course: string;
|
|
1139
|
+
group_name: string;
|
|
1140
|
+
created_at: number;
|
|
1141
|
+
group_type: GroupType;
|
|
1142
|
+
lessons_per_month: number;
|
|
1143
|
+
rate_per_lesson: number;
|
|
1144
|
+
lesson_group_id: number | null;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
export interface AllStudentsResponse {
|
|
1148
|
+
total_students: number;
|
|
1149
|
+
current_page: number;
|
|
1150
|
+
total_pages: number;
|
|
1151
|
+
students: AllStudentItem[];
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1069
1154
|
export default class SalaryAPI {
|
|
1070
1155
|
constructor(options?: SalaryAPIOptions);
|
|
1071
1156
|
|
|
@@ -1094,7 +1179,7 @@ declare module 'nazar-salary' {
|
|
|
1094
1179
|
getOrphanPayments(params?: { page?: number; limit?: number }): Promise<OrphanPaymentsResponse>;
|
|
1095
1180
|
getBanksConfig(): Promise<BanksConfigResponse>;
|
|
1096
1181
|
getManagerStudentsAdmin(managerId: number, params?: StudentsListParams): Promise<StudentsListResponse>;
|
|
1097
|
-
|
|
1182
|
+
|
|
1098
1183
|
// Dashboard endpoints
|
|
1099
1184
|
getDashboard(): Promise<DashboardResponse>;
|
|
1100
1185
|
|
|
@@ -1130,10 +1215,13 @@ declare module 'nazar-salary' {
|
|
|
1130
1215
|
resumeStudent(studentId: number, data?: ResumeStudentData): Promise<ResumeStudentResponse>;
|
|
1131
1216
|
getStudent(studentId: number): Promise<StudentDetail>;
|
|
1132
1217
|
searchStudents(params: SearchStudentsParams): Promise<SearchStudentsResponse>;
|
|
1218
|
+
getStoppedStudents(params?: StoppedStudentsParams): Promise<StoppedStudentsResponse>;
|
|
1133
1219
|
getStudentsList(params?: StudentsListParams): Promise<StudentsListResponse>;
|
|
1134
1220
|
/** @deprecated Use getStudentsList instead */
|
|
1135
1221
|
getManagerStudents(managerId: number, params?: ManagerStudentsParams): Promise<ManagerStudentsResponse>;
|
|
1136
1222
|
getStudentsListLite(params?: StudentsListLiteParams): Promise<StudentsListLiteResponse>;
|
|
1223
|
+
deleteStudent(studentId: number): Promise<DeleteStudentResponse>;
|
|
1224
|
+
getAllStudents(params?: AllStudentsParams): Promise<AllStudentsResponse>;
|
|
1137
1225
|
deleteStudentPurchase(studentId: number, purchaseId: number): Promise<DeleteStudentPurchaseResponse>;
|
|
1138
1226
|
|
|
1139
1227
|
// Custom request
|
package/index.js
CHANGED
|
@@ -634,6 +634,21 @@ class SalaryAPI {
|
|
|
634
634
|
return await this.client.get("/api/v1/admin/students", { params });
|
|
635
635
|
}
|
|
636
636
|
|
|
637
|
+
/**
|
|
638
|
+
* Get stopped students list (Admin only)
|
|
639
|
+
* @param {object} [params] - Filter parameters
|
|
640
|
+
* @param {string} [params.search] - Search by name or phone
|
|
641
|
+
* @param {number} [params.manager_id] - Filter by manager ID
|
|
642
|
+
* @param {number} [params.teacher_id] - Filter by teacher ID
|
|
643
|
+
* @param {string} [params.stop_reason] - Filter by stop reason
|
|
644
|
+
* @param {number} [params.page=1] - Page number
|
|
645
|
+
* @param {number} [params.limit=30] - Page size
|
|
646
|
+
* @returns {Promise<object>}
|
|
647
|
+
*/
|
|
648
|
+
async getStoppedStudents(params = {}) {
|
|
649
|
+
return await this.client.get("/api/v1/admin/students/stopped", { params });
|
|
650
|
+
}
|
|
651
|
+
|
|
637
652
|
/**
|
|
638
653
|
* Get students of specific manager (Admin provides manager_id, Manager gets own students)
|
|
639
654
|
* @param {object} [params] - Filter parameters
|
|
@@ -677,6 +692,28 @@ class SalaryAPI {
|
|
|
677
692
|
return await this.client.get("/api/v1/student/list/lite", { params });
|
|
678
693
|
}
|
|
679
694
|
|
|
695
|
+
/**
|
|
696
|
+
* Delete student (soft delete, requireAuth)
|
|
697
|
+
* Managers can only delete their own students
|
|
698
|
+
* @param {number} studentId - Student ID
|
|
699
|
+
* @returns {Promise<{message: string, student_id: number, deleted_at: number}>}
|
|
700
|
+
*/
|
|
701
|
+
async deleteStudent(studentId) {
|
|
702
|
+
return await this.client.delete(`/api/v1/student/${studentId}`);
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Get all students globally (Admin only)
|
|
707
|
+
* @param {object} [params] - Query parameters
|
|
708
|
+
* @param {number} [params.teacher_id] - Filter by teacher ID
|
|
709
|
+
* @param {number} [params.page=1] - Page number
|
|
710
|
+
* @param {number} [params.limit=30] - Items per page (max 30)
|
|
711
|
+
* @returns {Promise<{total_students: number, current_page: number, total_pages: number, students: array}>}
|
|
712
|
+
*/
|
|
713
|
+
async getAllStudents(params = {}) {
|
|
714
|
+
return await this.client.get("/api/v1/student/list/all", { params });
|
|
715
|
+
}
|
|
716
|
+
|
|
680
717
|
/**
|
|
681
718
|
* Delete student purchase/payment (requireAuth)
|
|
682
719
|
* Managers can only delete non-verified payments
|