nazar-salary 1.3.2 → 1.3.5

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 +45 -0
  2. package/index.js +23 -0
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -194,6 +194,48 @@ declare module 'nazar-salary' {
194
194
  history: PriceHistoryItem[];
195
195
  }
196
196
 
197
+ export type GroupType = 'individual' | 'duet' | 'trio' | 'group';
198
+
199
+ export interface Student {
200
+ id: number;
201
+ first_name: string;
202
+ last_name: string;
203
+ phone: string;
204
+ age: number;
205
+ created_at: number;
206
+ purchase_amount: number;
207
+ operation_number: string;
208
+ is_verified: boolean;
209
+ verified_at: number | null;
210
+ price_id: number;
211
+ teacher_id: number;
212
+ owned_by: number;
213
+ enrollment_months: number;
214
+ total_lessons: number;
215
+ group_name: string;
216
+ main_course: string;
217
+ bonus_languages: string[] | null;
218
+ group_type: GroupType;
219
+ lessons_per_month: number;
220
+ duration_minutes: number;
221
+ rate_per_lesson: number;
222
+ }
223
+
224
+ export interface CreateStudentData {
225
+ first_name: string;
226
+ last_name: string;
227
+ phone: string;
228
+ age: number;
229
+ purchase_amount: number;
230
+ operation_number: string;
231
+ price_id: number;
232
+ teacher_id: number;
233
+ enrollment_months: number;
234
+ group_name: string;
235
+ main_course: string;
236
+ bonus_languages?: string[];
237
+ }
238
+
197
239
  export default class SalaryAPI {
198
240
  constructor(options?: SalaryAPIOptions);
199
241
 
@@ -231,6 +273,9 @@ declare module 'nazar-salary' {
231
273
  getPriceHistory(priceId: number): Promise<PriceHistoryResponse>;
232
274
  deletePrice(priceId: number): Promise<void>;
233
275
 
276
+ // Student endpoints
277
+ createStudent(data: CreateStudentData): Promise<Student>;
278
+
234
279
  // Custom request
235
280
  request(method: string, path: string, data?: any): Promise<any>;
236
281
  }
package/index.js CHANGED
@@ -312,6 +312,29 @@ class SalaryAPI {
312
312
  return await this.client.delete(`/api/v1/admin/prices/${priceId}`);
313
313
  }
314
314
 
315
+ // ===== STUDENT ENDPOINTS =====
316
+
317
+ /**
318
+ * Create new student (requireAuth)
319
+ * @param {object} data - Student data
320
+ * @param {string} data.first_name - First name
321
+ * @param {string} data.last_name - Last name
322
+ * @param {string} data.phone - Phone number (11 digits)
323
+ * @param {number} data.age - Age
324
+ * @param {number} data.purchase_amount - Purchase amount in tenge
325
+ * @param {string} data.operation_number - Unique operation number from Kaspi
326
+ * @param {number} data.price_id - Price ID
327
+ * @param {number} data.teacher_id - Teacher ID
328
+ * @param {number} data.enrollment_months - Enrollment months (1-12)
329
+ * @param {string} data.group_name - Group name
330
+ * @param {string} data.main_course - Main course
331
+ * @param {string[]} [data.bonus_languages] - Bonus languages array
332
+ * @returns {Promise<object>}
333
+ */
334
+ async createStudent(data) {
335
+ return await this.client.post("/api/v1/student/new", data);
336
+ }
337
+
315
338
  // ===== CUSTOM REQUEST =====
316
339
 
317
340
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nazar-salary",
3
- "version": "1.3.2",
3
+ "version": "1.3.5",
4
4
  "description": "Frontend library for Nazar Salary API",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",