nazar-salary 2.0.1 → 2.1.1

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 +83 -0
  2. package/index.js +37 -2
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -165,6 +165,86 @@ declare module 'nazar-salary' {
165
165
  period_to?: string;
166
166
  }
167
167
 
168
+ export interface ManualPaymentData {
169
+ operation_number: string;
170
+ bank_id: string;
171
+ payment_method: string;
172
+ amount: number;
173
+ transaction_date?: string;
174
+ transaction_time?: string;
175
+ comment?: string;
176
+ }
177
+
178
+ export interface ManualPaymentStudent {
179
+ id: number;
180
+ first_name: string;
181
+ last_name: string;
182
+ phone?: string;
183
+ manager_name?: string;
184
+ purchase_amount?: number;
185
+ is_verified: boolean;
186
+ verified_at?: string;
187
+ }
188
+
189
+ export interface ManualPaymentDetails {
190
+ operation_number: string;
191
+ amount: number;
192
+ bank_commission?: number;
193
+ net_amount?: number;
194
+ manager_commission?: number;
195
+ discrepancy_amount?: number;
196
+ payment_method?: string;
197
+ manual_verification?: boolean;
198
+ verified_by?: number;
199
+ }
200
+
201
+ export interface ManualPaymentResponse {
202
+ status: 'success' | 'error';
203
+ result: 'verified' | 'discrepancy' | 'orphan';
204
+ message: string;
205
+ student?: ManualPaymentStudent;
206
+ payment: ManualPaymentDetails;
207
+ code?: string;
208
+ details?: any;
209
+ }
210
+
211
+ export interface OrphanPaymentItem {
212
+ id: number;
213
+ operation_number: string;
214
+ amount: number;
215
+ bank_name: string;
216
+ payment_method: string;
217
+ commission_rate: number;
218
+ bank_commission: number;
219
+ net_amount: number;
220
+ transaction_date?: string;
221
+ transaction_time?: string;
222
+ comment?: string;
223
+ created_by: string;
224
+ created_at: string;
225
+ }
226
+
227
+ export interface OrphanPaymentsResponse {
228
+ orphan_payments: OrphanPaymentItem[];
229
+ pagination: Pagination;
230
+ }
231
+
232
+ export interface PaymentMethod {
233
+ payment_method_id: string;
234
+ payment_method_name: string;
235
+ commission_rate: number;
236
+ }
237
+
238
+ export interface BankConfig {
239
+ bank_id: string;
240
+ bank_name: string;
241
+ payment_methods: PaymentMethod[];
242
+ }
243
+
244
+ export interface BanksConfigResponse {
245
+ banks: BankConfig[];
246
+ }
247
+
168
248
  export interface UpdateUserData {
169
249
  first_name?: string;
170
250
  last_name?: string;
@@ -626,6 +706,9 @@ declare module 'nazar-salary' {
626
706
  uploadKaspiReceipt(file: File | Buffer, options?: UploadBankReceiptOptions): Promise<BankReceiptUploadResponse>;
627
707
  getReceiptsList(params?: BankReceiptsListParams): Promise<BankReceiptsListResponse>;
628
708
  getReceiptStatus(logId: number): Promise<BankReceiptStatusResponse>;
709
+ addManualPayment(data: ManualPaymentData): Promise<ManualPaymentResponse>;
710
+ getOrphanPayments(params?: { page?: number; limit?: number }): Promise<OrphanPaymentsResponse>;
711
+ getBanksConfig(): Promise<BanksConfigResponse>;
629
712
 
630
713
  // Teacher endpoints
631
714
  getTeacherLanguages(): Promise<TeacherLanguagesResponse>;
package/index.js CHANGED
@@ -179,7 +179,7 @@ class SalaryAPI {
179
179
 
180
180
  /**
181
181
  * Upload bank receipt Excel file for verification (Admin only)
182
- * Supports Kaspi, Halyk, Jusan and other bank statements
182
+ * Supports Kaspi only
183
183
  * Processing happens asynchronously, use getReceiptStatus to check progress
184
184
  * @param {File|Buffer} file - Excel file (.xlsx) with bank statement
185
185
  * @param {object} [options] - Upload options
@@ -218,7 +218,42 @@ class SalaryAPI {
218
218
  * @returns {Promise<{status: string, log_id: number, file_name: string, summary?: object, details?: object, error_message?: string}>}
219
219
  */
220
220
  async getReceiptStatus(logId) {
221
- return await this.client.get(`/api/v1/admin/receipts/${logId}`);
221
+ return await this.client.get(`/api/v1/admin/receipts/logs/${logId}`);
222
+ }
223
+
224
+ /**
225
+ * Manually add payment from non-Kaspi banks (Admin only)
226
+ * @param {object} data - Payment data
227
+ * @param {string} data.operation_number - 11-digit operation number
228
+ * @param {string} data.bank_id - Bank ID (halyk, forte, jusan, freedom, centercredit)
229
+ * @param {string} data.payment_method - Payment method ID
230
+ * @param {number} data.amount - Payment amount (2000-10000000 KZT)
231
+ * @param {string} [data.transaction_date] - Transaction date
232
+ * @param {string} [data.transaction_time] - Transaction time
233
+ * @param {string} [data.comment] - Comment (max 500 chars)
234
+ * @returns {Promise<{status: string, result: string, message: string, student?: object, payment: object}>}
235
+ */
236
+ async addManualPayment(data) {
237
+ return await this.client.post("/api/v1/admin/receipts/manual-add", data);
238
+ }
239
+
240
+ /**
241
+ * Get list of orphan (unused) payments (Admin only)
242
+ * @param {object} [params] - Query parameters
243
+ * @param {number} [params.page=1] - Page number
244
+ * @param {number} [params.limit=30] - Items per page
245
+ * @returns {Promise<{orphan_payments: array, pagination: object}>}
246
+ */
247
+ async getOrphanPayments(params = {}) {
248
+ return await this.client.get("/api/v1/admin/receipts/orphan", { params });
249
+ }
250
+
251
+ /**
252
+ * Get available banks and payment methods configuration (Admin only)
253
+ * @returns {Promise<{banks: array}>}
254
+ */
255
+ async getBanksConfig() {
256
+ return await this.client.get("/api/v1/admin/receipts/banks");
222
257
  }
223
258
 
224
259
  // ===== TEACHER ENDPOINTS =====
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nazar-salary",
3
- "version": "2.0.1",
3
+ "version": "2.1.1",
4
4
  "description": "Frontend library for Nazar Salary API",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",