nazar-salary 2.2.0 → 2.3.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.
- package/index.d.ts +84 -2
- package/index.js +29 -0
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -472,6 +472,85 @@ declare module 'nazar-salary' {
|
|
|
472
472
|
transfer_date: number;
|
|
473
473
|
}
|
|
474
474
|
|
|
475
|
+
export interface LessonGroup {
|
|
476
|
+
lesson_group_id: number;
|
|
477
|
+
lesson_group_name: string;
|
|
478
|
+
students_in_group: number;
|
|
479
|
+
group_capacity: number;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
export interface LessonGroupsResponse {
|
|
483
|
+
available_groups: LessonGroup[];
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
export interface StudentCourse {
|
|
487
|
+
price_id: number;
|
|
488
|
+
teacher_id: number;
|
|
489
|
+
enrollment_months: number;
|
|
490
|
+
total_lessons: number;
|
|
491
|
+
main_course: string;
|
|
492
|
+
group_type: GroupType;
|
|
493
|
+
lessons_per_month: number;
|
|
494
|
+
rate_per_lesson: number;
|
|
495
|
+
lesson_group_id: number | null;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
export interface CreateStudentResponse {
|
|
499
|
+
id: number;
|
|
500
|
+
first_name: string;
|
|
501
|
+
last_name: string;
|
|
502
|
+
phone: string;
|
|
503
|
+
age: number;
|
|
504
|
+
created_at: number;
|
|
505
|
+
purchase_amount: number;
|
|
506
|
+
operation_number: string;
|
|
507
|
+
is_verified: boolean;
|
|
508
|
+
verified_at: number | null;
|
|
509
|
+
prepayment: boolean;
|
|
510
|
+
completed_lessons: number;
|
|
511
|
+
owned_by: number;
|
|
512
|
+
group_name: string;
|
|
513
|
+
bonus_languages: string[] | null;
|
|
514
|
+
course: StudentCourse;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export interface UpdateStudentResponse {
|
|
518
|
+
student: {
|
|
519
|
+
id: number;
|
|
520
|
+
first_name: string;
|
|
521
|
+
last_name: string;
|
|
522
|
+
phone: string;
|
|
523
|
+
age: number;
|
|
524
|
+
operation_numbers: string[];
|
|
525
|
+
purchase_amounts: number[];
|
|
526
|
+
prepayment: boolean;
|
|
527
|
+
group_name: string;
|
|
528
|
+
main_course: string;
|
|
529
|
+
bonus_languages: string[] | null;
|
|
530
|
+
group_type: GroupType;
|
|
531
|
+
lessons_per_month: number;
|
|
532
|
+
duration_minutes: number;
|
|
533
|
+
rate_per_lesson: number;
|
|
534
|
+
updated_at: number;
|
|
535
|
+
};
|
|
536
|
+
current_course: {
|
|
537
|
+
price_id: number;
|
|
538
|
+
teacher_id: number;
|
|
539
|
+
enrollment_months: number;
|
|
540
|
+
total_lessons: number;
|
|
541
|
+
completed_lessons: number;
|
|
542
|
+
};
|
|
543
|
+
payments: {
|
|
544
|
+
id: number;
|
|
545
|
+
operation_number: string;
|
|
546
|
+
purchase_amount: number;
|
|
547
|
+
is_verified: boolean;
|
|
548
|
+
verified_at: number | null;
|
|
549
|
+
created_at: number;
|
|
550
|
+
}[];
|
|
551
|
+
total_purchase_amount: number;
|
|
552
|
+
}
|
|
553
|
+
|
|
475
554
|
export interface CreateStudentData {
|
|
476
555
|
first_name: string;
|
|
477
556
|
last_name: string;
|
|
@@ -486,6 +565,7 @@ declare module 'nazar-salary' {
|
|
|
486
565
|
main_course: string;
|
|
487
566
|
prepayment: boolean;
|
|
488
567
|
bonus_languages?: string[];
|
|
568
|
+
lesson_group_id?: number;
|
|
489
569
|
}
|
|
490
570
|
|
|
491
571
|
export interface UpdateStudentData {
|
|
@@ -726,6 +806,7 @@ declare module 'nazar-salary' {
|
|
|
726
806
|
addManualPayment(data: ManualPaymentData): Promise<ManualPaymentResponse>;
|
|
727
807
|
getOrphanPayments(params?: { page?: number; limit?: number }): Promise<OrphanPaymentsResponse>;
|
|
728
808
|
getBanksConfig(): Promise<BanksConfigResponse>;
|
|
809
|
+
getManagerStudentsAdmin(managerId: number, params?: StudentsListParams): Promise<StudentsListResponse>;
|
|
729
810
|
|
|
730
811
|
// Teacher endpoints
|
|
731
812
|
getTeacherLanguages(): Promise<TeacherLanguagesResponse>;
|
|
@@ -744,8 +825,9 @@ declare module 'nazar-salary' {
|
|
|
744
825
|
getPricesList(): Promise<PricesResponse>;
|
|
745
826
|
|
|
746
827
|
// Student endpoints
|
|
747
|
-
createStudent(data: CreateStudentData): Promise<
|
|
748
|
-
|
|
828
|
+
createStudent(data: CreateStudentData): Promise<CreateStudentResponse>;
|
|
829
|
+
getLessonGroups(): Promise<LessonGroupsResponse>;
|
|
830
|
+
updateStudent(studentId: number, data: UpdateStudentData): Promise<UpdateStudentResponse>;
|
|
749
831
|
transferStudent(studentId: number, data: TransferStudentData): Promise<TransferResponse>;
|
|
750
832
|
changeStudentManager(studentId: number, data: ChangeStudentManagerData): Promise<ChangeStudentManagerResponse>;
|
|
751
833
|
getStudent(studentId: number): Promise<StudentDetail>;
|
package/index.js
CHANGED
|
@@ -257,6 +257,26 @@ class SalaryAPI {
|
|
|
257
257
|
return await this.client.get("/api/v1/admin/receipts/banks");
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
+
/**
|
|
261
|
+
* Get students of specific manager (Admin only)
|
|
262
|
+
* @param {number} managerId - Manager ID
|
|
263
|
+
* @param {object} [params] - Filter parameters
|
|
264
|
+
* @param {boolean} [params.prepayment] - Filter by prepayment status
|
|
265
|
+
* @param {boolean} [params.is_verified] - Filter by verification status
|
|
266
|
+
* @param {number} [params.teacher_id] - Filter by teacher ID
|
|
267
|
+
* @param {number} [params.price_id] - Filter by price ID
|
|
268
|
+
* @param {boolean} [params.is_deleted] - Filter by deletion status
|
|
269
|
+
* @param {string} [params.created_from] - Filter by created date from (ISO 8601)
|
|
270
|
+
* @param {string} [params.created_to] - Filter by created date to (ISO 8601)
|
|
271
|
+
* @param {string} [params.main_course] - Filter by main course
|
|
272
|
+
* @param {number} [params.page=1] - Page number
|
|
273
|
+
* @param {number} [params.limit=30] - Items per page (max 30)
|
|
274
|
+
* @returns {Promise<{manager: object, total_students: number, current_page: number, total_pages: number, students: array}>}
|
|
275
|
+
*/
|
|
276
|
+
async getManagerStudentsAdmin(managerId, params = {}) {
|
|
277
|
+
return await this.client.get(`/api/v1/admin/managers/${managerId}/students`, { params });
|
|
278
|
+
}
|
|
279
|
+
|
|
260
280
|
// ===== TEACHER ENDPOINTS =====
|
|
261
281
|
|
|
262
282
|
/**
|
|
@@ -419,12 +439,21 @@ class SalaryAPI {
|
|
|
419
439
|
* @param {string} data.main_course - Main course
|
|
420
440
|
* @param {boolean} data.prepayment - Prepayment flag
|
|
421
441
|
* @param {string[]} [data.bonus_languages] - Bonus languages array
|
|
442
|
+
* @param {number} [data.lesson_group_id] - Lesson group ID for duet/trio (optional)
|
|
422
443
|
* @returns {Promise<object>}
|
|
423
444
|
*/
|
|
424
445
|
async createStudent(data) {
|
|
425
446
|
return await this.client.post("/api/v1/student/new", data);
|
|
426
447
|
}
|
|
427
448
|
|
|
449
|
+
/**
|
|
450
|
+
* Get available lesson groups for duet/trio (requireAuth)
|
|
451
|
+
* @returns {Promise<{available_groups: Array<{lesson_group_id: number, lesson_group_name: string, students_in_group: number, group_capacity: number}>}>}
|
|
452
|
+
*/
|
|
453
|
+
async getLessonGroups() {
|
|
454
|
+
return await this.client.get("/api/v1/student/lesson-groups");
|
|
455
|
+
}
|
|
456
|
+
|
|
428
457
|
/**
|
|
429
458
|
* Update student (requireAuth)
|
|
430
459
|
* @param {number} studentId - Student ID
|