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.
Files changed (3) hide show
  1. package/index.d.ts +89 -1
  2. package/index.js +37 -0
  3. 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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nazar-salary",
3
- "version": "2.8.0",
3
+ "version": "2.8.2",
4
4
  "description": "Frontend library for Nazar Salary API",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",