@noatgnu/cupcake-salted-caramel 1.0.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/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # CupcakeSaltedCaramel
2
+
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
8
+
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
12
+
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
14
+
15
+ ```bash
16
+ ng generate --help
17
+ ```
18
+
19
+ ## Building
20
+
21
+ To build the library, run:
22
+
23
+ ```bash
24
+ ng build cupcake-salted-caramel
25
+ ```
26
+
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
28
+
29
+ ### Publishing the Library
30
+
31
+ Once the project is built, you can publish your library by following these steps:
32
+
33
+ 1. Navigate to the `dist` directory:
34
+ ```bash
35
+ cd dist/cupcake-salted-caramel
36
+ ```
37
+
38
+ 2. Run the `npm publish` command to publish your library to the npm registry:
39
+ ```bash
40
+ npm publish
41
+ ```
42
+
43
+ ## Running unit tests
44
+
45
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
46
+
47
+ ```bash
48
+ ng test
49
+ ```
50
+
51
+ ## Running end-to-end tests
52
+
53
+ For end-to-end (e2e) testing, run:
54
+
55
+ ```bash
56
+ ng e2e
57
+ ```
58
+
59
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
60
+
61
+ ## Additional Resources
62
+
63
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,530 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Injectable } from '@angular/core';
3
+ import { BaseApiService } from '@cupcake/core';
4
+
5
+ class CupcakeSaltedCaramel {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CupcakeSaltedCaramel, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.7", type: CupcakeSaltedCaramel, isStandalone: true, selector: "ccsc-cupcake-salted-caramel", ngImport: i0, template: `
8
+ <p>
9
+ cupcake-salted-caramel works!
10
+ </p>
11
+ `, isInline: true, styles: [""] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CupcakeSaltedCaramel, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'ccsc-cupcake-salted-caramel', imports: [], template: `
16
+ <p>
17
+ cupcake-salted-caramel works!
18
+ </p>
19
+ ` }]
20
+ }] });
21
+
22
+ var BillingUnit;
23
+ (function (BillingUnit) {
24
+ BillingUnit["HOURLY"] = "hourly";
25
+ BillingUnit["DAILY"] = "daily";
26
+ BillingUnit["USAGE"] = "usage";
27
+ BillingUnit["SAMPLE"] = "sample";
28
+ BillingUnit["FLAT"] = "flat";
29
+ BillingUnit["CUSTOM"] = "custom";
30
+ })(BillingUnit || (BillingUnit = {}));
31
+ var BillingStatus;
32
+ (function (BillingStatus) {
33
+ BillingStatus["PENDING"] = "pending";
34
+ BillingStatus["APPROVED"] = "approved";
35
+ BillingStatus["BILLED"] = "billed";
36
+ BillingStatus["PAID"] = "paid";
37
+ BillingStatus["DISPUTED"] = "disputed";
38
+ BillingStatus["CANCELLED"] = "cancelled";
39
+ })(BillingStatus || (BillingStatus = {}));
40
+
41
+ // Base types and enums
42
+
43
+ class ServiceTierService extends BaseApiService {
44
+ /**
45
+ * Get all service tiers with optional filtering
46
+ */
47
+ getServiceTiers(params) {
48
+ const httpParams = this.buildHttpParams(params);
49
+ return this.get(`${this.apiUrl}/service-tiers/`, { params: httpParams });
50
+ }
51
+ /**
52
+ * Get a single service tier by ID
53
+ */
54
+ getServiceTier(id) {
55
+ return this.get(`${this.apiUrl}/service-tiers/${id}/`);
56
+ }
57
+ /**
58
+ * Create a new service tier
59
+ */
60
+ createServiceTier(tier) {
61
+ return this.post(`${this.apiUrl}/service-tiers/`, tier);
62
+ }
63
+ /**
64
+ * Update an existing service tier
65
+ */
66
+ updateServiceTier(id, tier) {
67
+ return this.put(`${this.apiUrl}/service-tiers/${id}/`, tier);
68
+ }
69
+ /**
70
+ * Partially update a service tier
71
+ */
72
+ patchServiceTier(id, tier) {
73
+ return this.patch(`${this.apiUrl}/service-tiers/${id}/`, tier);
74
+ }
75
+ /**
76
+ * Delete a service tier
77
+ */
78
+ deleteServiceTier(id) {
79
+ return this.delete(`${this.apiUrl}/service-tiers/${id}/`);
80
+ }
81
+ /**
82
+ * Calculate price for a given base amount using tier's modifiers
83
+ */
84
+ calculatePrice(id, request) {
85
+ return this.post(`${this.apiUrl}/service-tiers/${id}/calculate_price/`, request);
86
+ }
87
+ /**
88
+ * Get active service tiers (Django custom action)
89
+ */
90
+ getActiveTiers() {
91
+ return this.get(`${this.apiUrl}/service-tiers/active_tiers/`);
92
+ }
93
+ /**
94
+ * Search service tiers by name or description
95
+ */
96
+ searchServiceTiers(query) {
97
+ return this.getServiceTiers({ search: query });
98
+ }
99
+ /**
100
+ * Get active service tiers only
101
+ */
102
+ getActiveServiceTiers() {
103
+ return this.getServiceTiers({ isActive: true });
104
+ }
105
+ /**
106
+ * Get inactive service tiers
107
+ */
108
+ getInactiveServiceTiers() {
109
+ return this.getServiceTiers({ isActive: false });
110
+ }
111
+ /**
112
+ * Get service tiers by priority level
113
+ */
114
+ getServiceTiersByPriority(priorityLevel) {
115
+ return this.getServiceTiers({ priorityLevel });
116
+ }
117
+ /**
118
+ * Get service tiers ordered by priority (highest first)
119
+ */
120
+ getServiceTiersByPriorityDesc() {
121
+ return this.getServiceTiers({ ordering: '-priority_level' });
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServiceTierService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServiceTierService, providedIn: 'root' });
125
+ }
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServiceTierService, decorators: [{
127
+ type: Injectable,
128
+ args: [{
129
+ providedIn: 'root'
130
+ }]
131
+ }] });
132
+
133
+ class BillableItemTypeService extends BaseApiService {
134
+ /**
135
+ * Get all billable item types with optional filtering
136
+ */
137
+ getBillableItemTypes(params) {
138
+ const httpParams = this.buildHttpParams(params);
139
+ return this.get(`${this.apiUrl}/billable-item-types/`, { params: httpParams });
140
+ }
141
+ /**
142
+ * Get a single billable item type by ID
143
+ */
144
+ getBillableItemType(id) {
145
+ return this.get(`${this.apiUrl}/billable-item-types/${id}/`);
146
+ }
147
+ /**
148
+ * Create a new billable item type
149
+ */
150
+ createBillableItemType(itemType) {
151
+ return this.post(`${this.apiUrl}/billable-item-types/`, itemType);
152
+ }
153
+ /**
154
+ * Update an existing billable item type
155
+ */
156
+ updateBillableItemType(id, itemType) {
157
+ return this.put(`${this.apiUrl}/billable-item-types/${id}/`, itemType);
158
+ }
159
+ /**
160
+ * Partially update a billable item type
161
+ */
162
+ patchBillableItemType(id, itemType) {
163
+ return this.patch(`${this.apiUrl}/billable-item-types/${id}/`, itemType);
164
+ }
165
+ /**
166
+ * Delete a billable item type
167
+ */
168
+ deleteBillableItemType(id) {
169
+ return this.delete(`${this.apiUrl}/billable-item-types/${id}/`);
170
+ }
171
+ /**
172
+ * Get billable item types grouped by content type (Django custom action)
173
+ */
174
+ getByContentType(appLabel, model) {
175
+ const params = this.buildHttpParams({ appLabel, model });
176
+ return this.get(`${this.apiUrl}/billable-item-types/by_content_type/`, { params });
177
+ }
178
+ /**
179
+ * Search billable item types by name or description
180
+ */
181
+ searchBillableItemTypes(query) {
182
+ return this.getBillableItemTypes({ search: query });
183
+ }
184
+ /**
185
+ * Get active billable item types only
186
+ */
187
+ getActiveBillableItemTypes() {
188
+ return this.getBillableItemTypes({ isActive: true });
189
+ }
190
+ /**
191
+ * Get inactive billable item types
192
+ */
193
+ getInactiveBillableItemTypes() {
194
+ return this.getBillableItemTypes({ isActive: false });
195
+ }
196
+ /**
197
+ * Get billable item types that require approval
198
+ */
199
+ getApprovalRequiredItemTypes() {
200
+ return this.getBillableItemTypes({ requiresApproval: true });
201
+ }
202
+ /**
203
+ * Get billable item types that don't require approval
204
+ */
205
+ getAutoApprovedItemTypes() {
206
+ return this.getBillableItemTypes({ requiresApproval: false });
207
+ }
208
+ /**
209
+ * Get billable item types by billing unit
210
+ */
211
+ getBillableItemTypesByUnit(billingUnit) {
212
+ return this.getBillableItemTypes({ defaultBillingUnit: billingUnit });
213
+ }
214
+ /**
215
+ * Get hourly billing item types
216
+ */
217
+ getHourlyBillingItemTypes() {
218
+ return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.HOURLY });
219
+ }
220
+ /**
221
+ * Get usage-based billing item types
222
+ */
223
+ getUsageBillingItemTypes() {
224
+ return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.USAGE });
225
+ }
226
+ /**
227
+ * Get flat rate billing item types
228
+ */
229
+ getFlatRateBillingItemTypes() {
230
+ return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.FLAT });
231
+ }
232
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillableItemTypeService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
233
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillableItemTypeService, providedIn: 'root' });
234
+ }
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillableItemTypeService, decorators: [{
236
+ type: Injectable,
237
+ args: [{
238
+ providedIn: 'root'
239
+ }]
240
+ }] });
241
+
242
+ class ServicePriceService extends BaseApiService {
243
+ /**
244
+ * Get all service prices with optional filtering
245
+ */
246
+ getServicePrices(params) {
247
+ const httpParams = this.buildHttpParams(params);
248
+ return this.get(`${this.apiUrl}/service-prices/`, { params: httpParams });
249
+ }
250
+ /**
251
+ * Get a single service price by ID
252
+ */
253
+ getServicePrice(id) {
254
+ return this.get(`${this.apiUrl}/service-prices/${id}/`);
255
+ }
256
+ /**
257
+ * Create a new service price
258
+ */
259
+ createServicePrice(price) {
260
+ return this.post(`${this.apiUrl}/service-prices/`, price);
261
+ }
262
+ /**
263
+ * Update an existing service price
264
+ */
265
+ updateServicePrice(id, price) {
266
+ return this.put(`${this.apiUrl}/service-prices/${id}/`, price);
267
+ }
268
+ /**
269
+ * Partially update a service price
270
+ */
271
+ patchServicePrice(id, price) {
272
+ return this.patch(`${this.apiUrl}/service-prices/${id}/`, price);
273
+ }
274
+ /**
275
+ * Delete a service price
276
+ */
277
+ deleteServicePrice(id) {
278
+ return this.delete(`${this.apiUrl}/service-prices/${id}/`);
279
+ }
280
+ /**
281
+ * Calculate total cost for a given quantity
282
+ */
283
+ calculateCost(id, request) {
284
+ return this.post(`${this.apiUrl}/service-prices/${id}/calculate_cost/`, request);
285
+ }
286
+ /**
287
+ * Get current effective prices (Django custom action)
288
+ */
289
+ getCurrentPrices() {
290
+ return this.get(`${this.apiUrl}/service-prices/current_prices/`);
291
+ }
292
+ /**
293
+ * Search service prices by item or tier name
294
+ */
295
+ searchServicePrices(query) {
296
+ return this.getServicePrices({ search: query });
297
+ }
298
+ /**
299
+ * Get active service prices only
300
+ */
301
+ getActiveServicePrices() {
302
+ return this.getServicePrices({ isActive: true });
303
+ }
304
+ /**
305
+ * Get inactive service prices
306
+ */
307
+ getInactiveServicePrices() {
308
+ return this.getServicePrices({ isActive: false });
309
+ }
310
+ /**
311
+ * Get service prices by billing unit
312
+ */
313
+ getServicePricesByUnit(billingUnit) {
314
+ return this.getServicePrices({ billingUnit });
315
+ }
316
+ /**
317
+ * Get service prices by currency
318
+ */
319
+ getServicePricesByCurrency(currency) {
320
+ return this.getServicePrices({ currency });
321
+ }
322
+ /**
323
+ * Get service prices for a specific billable item type
324
+ */
325
+ getServicePricesForItemType(itemTypeId) {
326
+ return this.getServicePrices({ billableItemType: itemTypeId });
327
+ }
328
+ /**
329
+ * Get service prices for a specific service tier
330
+ */
331
+ getServicePricesForTier(tierId) {
332
+ return this.getServicePrices({ serviceTier: tierId });
333
+ }
334
+ /**
335
+ * Get hourly service prices
336
+ */
337
+ getHourlyServicePrices() {
338
+ return this.getServicePrices({ billingUnit: BillingUnit.HOURLY });
339
+ }
340
+ /**
341
+ * Get usage-based service prices
342
+ */
343
+ getUsageServicePrices() {
344
+ return this.getServicePrices({ billingUnit: BillingUnit.USAGE });
345
+ }
346
+ /**
347
+ * Get flat rate service prices
348
+ */
349
+ getFlatRateServicePrices() {
350
+ return this.getServicePrices({ billingUnit: BillingUnit.FLAT });
351
+ }
352
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServicePriceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
353
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServicePriceService, providedIn: 'root' });
354
+ }
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ServicePriceService, decorators: [{
356
+ type: Injectable,
357
+ args: [{
358
+ providedIn: 'root'
359
+ }]
360
+ }] });
361
+
362
+ class BillingRecordService extends BaseApiService {
363
+ /**
364
+ * Get all billing records with optional filtering
365
+ */
366
+ getBillingRecords(params) {
367
+ const httpParams = this.buildHttpParams(params);
368
+ return this.get(`${this.apiUrl}/billing-records/`, { params: httpParams });
369
+ }
370
+ /**
371
+ * Get a single billing record by ID
372
+ */
373
+ getBillingRecord(id) {
374
+ return this.get(`${this.apiUrl}/billing-records/${id}/`);
375
+ }
376
+ /**
377
+ * Create a new billing record
378
+ */
379
+ createBillingRecord(record) {
380
+ return this.post(`${this.apiUrl}/billing-records/`, record);
381
+ }
382
+ /**
383
+ * Update an existing billing record
384
+ */
385
+ updateBillingRecord(id, record) {
386
+ return this.put(`${this.apiUrl}/billing-records/${id}/`, record);
387
+ }
388
+ /**
389
+ * Partially update a billing record
390
+ */
391
+ patchBillingRecord(id, record) {
392
+ return this.patch(`${this.apiUrl}/billing-records/${id}/`, record);
393
+ }
394
+ /**
395
+ * Delete a billing record
396
+ */
397
+ deleteBillingRecord(id) {
398
+ return this.delete(`${this.apiUrl}/billing-records/${id}/`);
399
+ }
400
+ /**
401
+ * Approve a billing record
402
+ */
403
+ approveBillingRecord(id, request) {
404
+ return this.post(`${this.apiUrl}/billing-records/${id}/approve/`, request);
405
+ }
406
+ /**
407
+ * Get billing summary statistics (Django custom action)
408
+ */
409
+ getSummary(params) {
410
+ const httpParams = this.buildHttpParams(params);
411
+ return this.get(`${this.apiUrl}/billing-records/summary/`, { params: httpParams });
412
+ }
413
+ /**
414
+ * Get billing records pending approval (Django custom action)
415
+ */
416
+ getPendingApproval() {
417
+ return this.get(`${this.apiUrl}/billing-records/pending_approval/`);
418
+ }
419
+ /**
420
+ * Get billing records grouped by cost center (Django custom action)
421
+ */
422
+ getByCostCenter() {
423
+ return this.get(`${this.apiUrl}/billing-records/by_cost_center/`);
424
+ }
425
+ /**
426
+ * Get user billing records
427
+ */
428
+ getUserBillingRecords(userId) {
429
+ return this.getBillingRecords({ user: userId });
430
+ }
431
+ /**
432
+ * Get my billing records (current user)
433
+ */
434
+ getMyBillingRecords() {
435
+ return this.get(`${this.apiUrl}/billing-records/my_records/`);
436
+ }
437
+ /**
438
+ * Search billing records by description, notes, or cost center
439
+ */
440
+ searchBillingRecords(query) {
441
+ return this.getBillingRecords({ search: query });
442
+ }
443
+ /**
444
+ * Get pending billing records
445
+ */
446
+ getPendingBillingRecords() {
447
+ return this.getBillingRecords({ status: BillingStatus.PENDING });
448
+ }
449
+ /**
450
+ * Get approved billing records
451
+ */
452
+ getApprovedBillingRecords() {
453
+ return this.getBillingRecords({ status: BillingStatus.APPROVED });
454
+ }
455
+ /**
456
+ * Get billed billing records
457
+ */
458
+ getBilledBillingRecords() {
459
+ return this.getBillingRecords({ status: BillingStatus.BILLED });
460
+ }
461
+ /**
462
+ * Get paid billing records
463
+ */
464
+ getPaidBillingRecords() {
465
+ return this.getBillingRecords({ status: BillingStatus.PAID });
466
+ }
467
+ /**
468
+ * Get disputed billing records
469
+ */
470
+ getDisputedBillingRecords() {
471
+ return this.getBillingRecords({ status: BillingStatus.DISPUTED });
472
+ }
473
+ /**
474
+ * Get cancelled billing records
475
+ */
476
+ getCancelledBillingRecords() {
477
+ return this.getBillingRecords({ status: BillingStatus.CANCELLED });
478
+ }
479
+ /**
480
+ * Get billing records by status
481
+ */
482
+ getBillingRecordsByStatus(status) {
483
+ return this.getBillingRecords({ status });
484
+ }
485
+ /**
486
+ * Get billing records by currency
487
+ */
488
+ getBillingRecordsByCurrency(currency) {
489
+ return this.getBillingRecords({ currency });
490
+ }
491
+ /**
492
+ * Get billing records by cost center
493
+ */
494
+ getBillingRecordsByCostCenter(costCenter) {
495
+ return this.getBillingRecords({ costCenter });
496
+ }
497
+ /**
498
+ * Get billing records by service tier
499
+ */
500
+ getBillingRecordsByServiceTier(tierId) {
501
+ return this.getBillingRecords({ serviceTier: tierId });
502
+ }
503
+ /**
504
+ * Get billing records for date range
505
+ */
506
+ getBillingRecordsByDateRange(dateFrom, dateTo) {
507
+ return this.getBillingRecords({ dateFrom, dateTo });
508
+ }
509
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillingRecordService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
510
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillingRecordService, providedIn: 'root' });
511
+ }
512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BillingRecordService, decorators: [{
513
+ type: Injectable,
514
+ args: [{
515
+ providedIn: 'root'
516
+ }]
517
+ }] });
518
+
519
+ // Billing and financial management services
520
+
521
+ /*
522
+ * Public API Surface of cupcake-salted-caramel
523
+ */
524
+
525
+ /**
526
+ * Generated bundle index. Do not edit.
527
+ */
528
+
529
+ export { BillableItemTypeService, BillingRecordService, BillingStatus, BillingUnit, CupcakeSaltedCaramel, ServicePriceService, ServiceTierService };
530
+ //# sourceMappingURL=noatgnu-cupcake-salted-caramel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noatgnu-cupcake-salted-caramel.mjs","sources":["../../../projects/cupcake-salted-caramel/src/lib/cupcake-salted-caramel.ts","../../../projects/cupcake-salted-caramel/src/lib/models/enums.ts","../../../projects/cupcake-salted-caramel/src/lib/models/index.ts","../../../projects/cupcake-salted-caramel/src/lib/services/service-tier.ts","../../../projects/cupcake-salted-caramel/src/lib/services/billable-item-type.ts","../../../projects/cupcake-salted-caramel/src/lib/services/service-price.ts","../../../projects/cupcake-salted-caramel/src/lib/services/billing-record.ts","../../../projects/cupcake-salted-caramel/src/lib/services/index.ts","../../../projects/cupcake-salted-caramel/src/public-api.ts","../../../projects/cupcake-salted-caramel/src/noatgnu-cupcake-salted-caramel.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'ccsc-cupcake-salted-caramel',\n imports: [],\n template: `\n <p>\n cupcake-salted-caramel works!\n </p>\n `,\n styles: ``\n})\nexport class CupcakeSaltedCaramel {\n\n}\n","export enum BillingUnit {\r\n HOURLY = 'hourly',\r\n DAILY = 'daily',\r\n USAGE = 'usage',\r\n SAMPLE = 'sample',\r\n FLAT = 'flat',\r\n CUSTOM = 'custom'\r\n}\r\n\r\nexport enum BillingStatus {\r\n PENDING = 'pending',\r\n APPROVED = 'approved',\r\n BILLED = 'billed',\r\n PAID = 'paid',\r\n DISPUTED = 'disputed',\r\n CANCELLED = 'cancelled'\r\n}","// Base types and enums\r\nexport * from './base';\r\nexport * from './enums';\r\n\r\n// Billing models\r\nexport * from './billing';","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseApiService } from '@cupcake/core';\r\n\r\nimport {\r\n ServiceTier,\r\n ServiceTierCreateRequest,\r\n ServiceTierUpdateRequest,\r\n PaginatedResponse\r\n} from '../models';\r\n\r\nexport interface ServiceTierQueryParams {\r\n search?: string;\r\n isActive?: boolean;\r\n priorityLevel?: number;\r\n limit?: number;\r\n offset?: number;\r\n ordering?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServiceTierService extends BaseApiService {\r\n\r\n /**\r\n * Get all service tiers with optional filtering\r\n */\r\n getServiceTiers(params?: ServiceTierQueryParams): Observable<PaginatedResponse<ServiceTier>> {\r\n const httpParams = this.buildHttpParams(params);\r\n return this.get<PaginatedResponse<ServiceTier>>(`${this.apiUrl}/service-tiers/`, { params: httpParams });\r\n }\r\n\r\n /**\r\n * Get a single service tier by ID\r\n */\r\n getServiceTier(id: number): Observable<ServiceTier> {\r\n return this.get<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`);\r\n }\r\n\r\n /**\r\n * Create a new service tier\r\n */\r\n createServiceTier(tier: ServiceTierCreateRequest): Observable<ServiceTier> {\r\n return this.post<ServiceTier>(`${this.apiUrl}/service-tiers/`, tier);\r\n }\r\n\r\n /**\r\n * Update an existing service tier\r\n */\r\n updateServiceTier(id: number, tier: ServiceTierUpdateRequest): Observable<ServiceTier> {\r\n return this.put<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`, tier);\r\n }\r\n\r\n /**\r\n * Partially update a service tier\r\n */\r\n patchServiceTier(id: number, tier: Partial<ServiceTierUpdateRequest>): Observable<ServiceTier> {\r\n return this.patch<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`, tier);\r\n }\r\n\r\n /**\r\n * Delete a service tier\r\n */\r\n deleteServiceTier(id: number): Observable<void> {\r\n return this.delete<void>(`${this.apiUrl}/service-tiers/${id}/`);\r\n }\r\n\r\n /**\r\n * Calculate price for a given base amount using tier's modifiers\r\n */\r\n calculatePrice(id: number, request: { baseAmount: number }): Observable<{ \r\n calculatedPrice: number; \r\n baseAmount: number; \r\n multiplier: number; \r\n discount: number \r\n }> {\r\n return this.post<{ \r\n calculatedPrice: number; \r\n baseAmount: number; \r\n multiplier: number; \r\n discount: number \r\n }>(`${this.apiUrl}/service-tiers/${id}/calculate_price/`, request);\r\n }\r\n\r\n /**\r\n * Get active service tiers (Django custom action)\r\n */\r\n getActiveTiers(): Observable<ServiceTier[]> {\r\n return this.get<ServiceTier[]>(`${this.apiUrl}/service-tiers/active_tiers/`);\r\n }\r\n\r\n /**\r\n * Search service tiers by name or description\r\n */\r\n searchServiceTiers(query: string): Observable<PaginatedResponse<ServiceTier>> {\r\n return this.getServiceTiers({ search: query });\r\n }\r\n\r\n /**\r\n * Get active service tiers only\r\n */\r\n getActiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>> {\r\n return this.getServiceTiers({ isActive: true });\r\n }\r\n\r\n /**\r\n * Get inactive service tiers\r\n */\r\n getInactiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>> {\r\n return this.getServiceTiers({ isActive: false });\r\n }\r\n\r\n /**\r\n * Get service tiers by priority level\r\n */\r\n getServiceTiersByPriority(priorityLevel: number): Observable<PaginatedResponse<ServiceTier>> {\r\n return this.getServiceTiers({ priorityLevel });\r\n }\r\n\r\n /**\r\n * Get service tiers ordered by priority (highest first)\r\n */\r\n getServiceTiersByPriorityDesc(): Observable<PaginatedResponse<ServiceTier>> {\r\n return this.getServiceTiers({ ordering: '-priority_level' });\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseApiService } from '@cupcake/core';\r\n\r\nimport {\r\n BillableItemType,\r\n BillableItemTypeCreateRequest,\r\n BillableItemTypeUpdateRequest,\r\n BillingUnit,\r\n PaginatedResponse\r\n} from '../models';\r\n\r\nexport interface BillableItemTypeQueryParams {\r\n search?: string;\r\n isActive?: boolean;\r\n requiresApproval?: boolean;\r\n defaultBillingUnit?: BillingUnit;\r\n limit?: number;\r\n offset?: number;\r\n ordering?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BillableItemTypeService extends BaseApiService {\r\n\r\n /**\r\n * Get all billable item types with optional filtering\r\n */\r\n getBillableItemTypes(params?: BillableItemTypeQueryParams): Observable<PaginatedResponse<BillableItemType>> {\r\n const httpParams = this.buildHttpParams(params);\r\n return this.get<PaginatedResponse<BillableItemType>>(`${this.apiUrl}/billable-item-types/`, { params: httpParams });\r\n }\r\n\r\n /**\r\n * Get a single billable item type by ID\r\n */\r\n getBillableItemType(id: number): Observable<BillableItemType> {\r\n return this.get<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`);\r\n }\r\n\r\n /**\r\n * Create a new billable item type\r\n */\r\n createBillableItemType(itemType: BillableItemTypeCreateRequest): Observable<BillableItemType> {\r\n return this.post<BillableItemType>(`${this.apiUrl}/billable-item-types/`, itemType);\r\n }\r\n\r\n /**\r\n * Update an existing billable item type\r\n */\r\n updateBillableItemType(id: number, itemType: BillableItemTypeUpdateRequest): Observable<BillableItemType> {\r\n return this.put<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`, itemType);\r\n }\r\n\r\n /**\r\n * Partially update a billable item type\r\n */\r\n patchBillableItemType(id: number, itemType: Partial<BillableItemTypeUpdateRequest>): Observable<BillableItemType> {\r\n return this.patch<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`, itemType);\r\n }\r\n\r\n /**\r\n * Delete a billable item type\r\n */\r\n deleteBillableItemType(id: number): Observable<void> {\r\n return this.delete<void>(`${this.apiUrl}/billable-item-types/${id}/`);\r\n }\r\n\r\n /**\r\n * Get billable item types grouped by content type (Django custom action)\r\n */\r\n getByContentType(appLabel?: string, model?: string): Observable<PaginatedResponse<BillableItemType>> {\r\n const params = this.buildHttpParams({ appLabel, model });\r\n return this.get<PaginatedResponse<BillableItemType>>(`${this.apiUrl}/billable-item-types/by_content_type/`, { params });\r\n }\r\n\r\n /**\r\n * Search billable item types by name or description\r\n */\r\n searchBillableItemTypes(query: string): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ search: query });\r\n }\r\n\r\n /**\r\n * Get active billable item types only\r\n */\r\n getActiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ isActive: true });\r\n }\r\n\r\n /**\r\n * Get inactive billable item types\r\n */\r\n getInactiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ isActive: false });\r\n }\r\n\r\n /**\r\n * Get billable item types that require approval\r\n */\r\n getApprovalRequiredItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ requiresApproval: true });\r\n }\r\n\r\n /**\r\n * Get billable item types that don't require approval\r\n */\r\n getAutoApprovedItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ requiresApproval: false });\r\n }\r\n\r\n /**\r\n * Get billable item types by billing unit\r\n */\r\n getBillableItemTypesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ defaultBillingUnit: billingUnit });\r\n }\r\n\r\n /**\r\n * Get hourly billing item types\r\n */\r\n getHourlyBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.HOURLY });\r\n }\r\n\r\n /**\r\n * Get usage-based billing item types\r\n */\r\n getUsageBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.USAGE });\r\n }\r\n\r\n /**\r\n * Get flat rate billing item types\r\n */\r\n getFlatRateBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\r\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.FLAT });\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseApiService } from '@cupcake/core';\r\n\r\nimport {\r\n ServicePrice,\r\n ServicePriceCreateRequest,\r\n ServicePriceUpdateRequest,\r\n ServicePriceCalculationRequest,\r\n CostBreakdown,\r\n BillingUnit,\r\n PaginatedResponse\r\n} from '../models';\r\n\r\nexport interface ServicePriceQueryParams {\r\n search?: string;\r\n isActive?: boolean;\r\n billingUnit?: BillingUnit;\r\n currency?: string;\r\n billableItemType?: number;\r\n serviceTier?: number;\r\n limit?: number;\r\n offset?: number;\r\n ordering?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServicePriceService extends BaseApiService {\r\n\r\n /**\r\n * Get all service prices with optional filtering\r\n */\r\n getServicePrices(params?: ServicePriceQueryParams): Observable<PaginatedResponse<ServicePrice>> {\r\n const httpParams = this.buildHttpParams(params);\r\n return this.get<PaginatedResponse<ServicePrice>>(`${this.apiUrl}/service-prices/`, { params: httpParams });\r\n }\r\n\r\n /**\r\n * Get a single service price by ID\r\n */\r\n getServicePrice(id: number): Observable<ServicePrice> {\r\n return this.get<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`);\r\n }\r\n\r\n /**\r\n * Create a new service price\r\n */\r\n createServicePrice(price: ServicePriceCreateRequest): Observable<ServicePrice> {\r\n return this.post<ServicePrice>(`${this.apiUrl}/service-prices/`, price);\r\n }\r\n\r\n /**\r\n * Update an existing service price\r\n */\r\n updateServicePrice(id: number, price: ServicePriceUpdateRequest): Observable<ServicePrice> {\r\n return this.put<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`, price);\r\n }\r\n\r\n /**\r\n * Partially update a service price\r\n */\r\n patchServicePrice(id: number, price: Partial<ServicePriceUpdateRequest>): Observable<ServicePrice> {\r\n return this.patch<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`, price);\r\n }\r\n\r\n /**\r\n * Delete a service price\r\n */\r\n deleteServicePrice(id: number): Observable<void> {\r\n return this.delete<void>(`${this.apiUrl}/service-prices/${id}/`);\r\n }\r\n\r\n /**\r\n * Calculate total cost for a given quantity\r\n */\r\n calculateCost(id: number, request: ServicePriceCalculationRequest): Observable<CostBreakdown> {\r\n return this.post<CostBreakdown>(`${this.apiUrl}/service-prices/${id}/calculate_cost/`, request);\r\n }\r\n\r\n /**\r\n * Get current effective prices (Django custom action)\r\n */\r\n getCurrentPrices(): Observable<ServicePrice[]> {\r\n return this.get<ServicePrice[]>(`${this.apiUrl}/service-prices/current_prices/`);\r\n }\r\n\r\n /**\r\n * Search service prices by item or tier name\r\n */\r\n searchServicePrices(query: string): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ search: query });\r\n }\r\n\r\n /**\r\n * Get active service prices only\r\n */\r\n getActiveServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ isActive: true });\r\n }\r\n\r\n /**\r\n * Get inactive service prices\r\n */\r\n getInactiveServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ isActive: false });\r\n }\r\n\r\n /**\r\n * Get service prices by billing unit\r\n */\r\n getServicePricesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ billingUnit });\r\n }\r\n\r\n /**\r\n * Get service prices by currency\r\n */\r\n getServicePricesByCurrency(currency: string): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ currency });\r\n }\r\n\r\n /**\r\n * Get service prices for a specific billable item type\r\n */\r\n getServicePricesForItemType(itemTypeId: number): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ billableItemType: itemTypeId });\r\n }\r\n\r\n /**\r\n * Get service prices for a specific service tier\r\n */\r\n getServicePricesForTier(tierId: number): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ serviceTier: tierId });\r\n }\r\n\r\n /**\r\n * Get hourly service prices\r\n */\r\n getHourlyServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ billingUnit: BillingUnit.HOURLY });\r\n }\r\n\r\n /**\r\n * Get usage-based service prices\r\n */\r\n getUsageServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ billingUnit: BillingUnit.USAGE });\r\n }\r\n\r\n /**\r\n * Get flat rate service prices\r\n */\r\n getFlatRateServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\r\n return this.getServicePrices({ billingUnit: BillingUnit.FLAT });\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseApiService } from '@cupcake/core';\r\n\r\nimport {\r\n BillingRecord,\r\n BillingRecordCreateRequest,\r\n BillingRecordUpdateRequest,\r\n BillingRecordSummary,\r\n BillingApprovalRequest,\r\n BillingStatus,\r\n PaginatedResponse\r\n} from '../models';\r\n\r\nexport interface BillingRecordQueryParams {\r\n search?: string;\r\n status?: BillingStatus;\r\n currency?: string;\r\n costCenter?: string;\r\n user?: number;\r\n serviceTier?: number;\r\n dateFrom?: string;\r\n dateTo?: string;\r\n limit?: number;\r\n offset?: number;\r\n ordering?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BillingRecordService extends BaseApiService {\r\n\r\n /**\r\n * Get all billing records with optional filtering\r\n */\r\n getBillingRecords(params?: BillingRecordQueryParams): Observable<PaginatedResponse<BillingRecord>> {\r\n const httpParams = this.buildHttpParams(params);\r\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/`, { params: httpParams });\r\n }\r\n\r\n /**\r\n * Get a single billing record by ID\r\n */\r\n getBillingRecord(id: string): Observable<BillingRecord> {\r\n return this.get<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`);\r\n }\r\n\r\n /**\r\n * Create a new billing record\r\n */\r\n createBillingRecord(record: BillingRecordCreateRequest): Observable<BillingRecord> {\r\n return this.post<BillingRecord>(`${this.apiUrl}/billing-records/`, record);\r\n }\r\n\r\n /**\r\n * Update an existing billing record\r\n */\r\n updateBillingRecord(id: string, record: BillingRecordUpdateRequest): Observable<BillingRecord> {\r\n return this.put<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`, record);\r\n }\r\n\r\n /**\r\n * Partially update a billing record\r\n */\r\n patchBillingRecord(id: string, record: Partial<BillingRecordUpdateRequest>): Observable<BillingRecord> {\r\n return this.patch<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`, record);\r\n }\r\n\r\n /**\r\n * Delete a billing record\r\n */\r\n deleteBillingRecord(id: string): Observable<void> {\r\n return this.delete<void>(`${this.apiUrl}/billing-records/${id}/`);\r\n }\r\n\r\n /**\r\n * Approve a billing record\r\n */\r\n approveBillingRecord(id: string, request: BillingApprovalRequest): Observable<BillingRecord> {\r\n return this.post<BillingRecord>(`${this.apiUrl}/billing-records/${id}/approve/`, request);\r\n }\r\n\r\n\r\n /**\r\n * Get billing summary statistics (Django custom action)\r\n */\r\n getSummary(params?: { \r\n dateFrom?: string; \r\n dateTo?: string; \r\n currency?: string;\r\n costCenter?: string;\r\n serviceTier?: number;\r\n }): Observable<BillingRecordSummary> {\r\n const httpParams = this.buildHttpParams(params);\r\n return this.get<BillingRecordSummary>(`${this.apiUrl}/billing-records/summary/`, { params: httpParams });\r\n }\r\n\r\n /**\r\n * Get billing records pending approval (Django custom action)\r\n */\r\n getPendingApproval(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/pending_approval/`);\r\n }\r\n\r\n /**\r\n * Get billing records grouped by cost center (Django custom action)\r\n */\r\n getByCostCenter(): Observable<{ [key: string]: BillingRecord[] }> {\r\n return this.get<{ [key: string]: BillingRecord[] }>(`${this.apiUrl}/billing-records/by_cost_center/`);\r\n }\r\n\r\n /**\r\n * Get user billing records\r\n */\r\n getUserBillingRecords(userId: number): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ user: userId });\r\n }\r\n\r\n /**\r\n * Get my billing records (current user)\r\n */\r\n getMyBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/my_records/`);\r\n }\r\n\r\n /**\r\n * Search billing records by description, notes, or cost center\r\n */\r\n searchBillingRecords(query: string): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ search: query });\r\n }\r\n\r\n /**\r\n * Get pending billing records\r\n */\r\n getPendingBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.PENDING });\r\n }\r\n\r\n /**\r\n * Get approved billing records\r\n */\r\n getApprovedBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.APPROVED });\r\n }\r\n\r\n /**\r\n * Get billed billing records\r\n */\r\n getBilledBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.BILLED });\r\n }\r\n\r\n /**\r\n * Get paid billing records\r\n */\r\n getPaidBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.PAID });\r\n }\r\n\r\n /**\r\n * Get disputed billing records\r\n */\r\n getDisputedBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.DISPUTED });\r\n }\r\n\r\n /**\r\n * Get cancelled billing records\r\n */\r\n getCancelledBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status: BillingStatus.CANCELLED });\r\n }\r\n\r\n /**\r\n * Get billing records by status\r\n */\r\n getBillingRecordsByStatus(status: BillingStatus): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ status });\r\n }\r\n\r\n /**\r\n * Get billing records by currency\r\n */\r\n getBillingRecordsByCurrency(currency: string): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ currency });\r\n }\r\n\r\n /**\r\n * Get billing records by cost center\r\n */\r\n getBillingRecordsByCostCenter(costCenter: string): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ costCenter });\r\n }\r\n\r\n /**\r\n * Get billing records by service tier\r\n */\r\n getBillingRecordsByServiceTier(tierId: number): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ serviceTier: tierId });\r\n }\r\n\r\n /**\r\n * Get billing records for date range\r\n */\r\n getBillingRecordsByDateRange(dateFrom: string, dateTo: string): Observable<PaginatedResponse<BillingRecord>> {\r\n return this.getBillingRecords({ dateFrom, dateTo });\r\n }\r\n\r\n}","// Billing and financial management services\r\nexport * from './service-tier';\r\nexport * from './billable-item-type';\r\nexport * from './service-price';\r\nexport * from './billing-record';","/*\n * Public API Surface of cupcake-salted-caramel\n */\n\nexport * from './lib/cupcake-salted-caramel';\n\n// Models and interfaces\nexport * from './lib/models';\n\n// Services\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,602 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { BaseApiService } from '@cupcake/core';
4
+
5
+ declare class CupcakeSaltedCaramel {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<CupcakeSaltedCaramel, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<CupcakeSaltedCaramel, "ccsc-cupcake-salted-caramel", never, {}, {}, never, never, true, never>;
8
+ }
9
+
10
+ interface BaseTimestampedModel {
11
+ createdAt: string;
12
+ updatedAt: string;
13
+ }
14
+ interface UserBasic {
15
+ id: number;
16
+ username: string;
17
+ firstName: string;
18
+ lastName: string;
19
+ email: string;
20
+ }
21
+ interface PaginatedResponse<T> {
22
+ count: number;
23
+ next?: string;
24
+ previous?: string;
25
+ results: T[];
26
+ }
27
+
28
+ declare enum BillingUnit {
29
+ HOURLY = "hourly",
30
+ DAILY = "daily",
31
+ USAGE = "usage",
32
+ SAMPLE = "sample",
33
+ FLAT = "flat",
34
+ CUSTOM = "custom"
35
+ }
36
+ declare enum BillingStatus {
37
+ PENDING = "pending",
38
+ APPROVED = "approved",
39
+ BILLED = "billed",
40
+ PAID = "paid",
41
+ DISPUTED = "disputed",
42
+ CANCELLED = "cancelled"
43
+ }
44
+
45
+ interface ServiceTier extends BaseTimestampedModel {
46
+ id: number;
47
+ tierName: string;
48
+ description?: string;
49
+ priorityLevel: number;
50
+ features: string[];
51
+ featuresDisplay?: string;
52
+ maxConcurrentBookings?: number;
53
+ advanceBookingDays: number;
54
+ baseRateMultiplier: number;
55
+ discountPercentage: number;
56
+ isActive: boolean;
57
+ activePricesCount: number;
58
+ }
59
+ interface BillableItemType extends BaseTimestampedModel {
60
+ id: number;
61
+ name: string;
62
+ description?: string;
63
+ contentType: number;
64
+ contentTypeDisplay?: string;
65
+ appLabel?: string;
66
+ defaultBillingUnit: BillingUnit;
67
+ defaultBillingUnitDisplay?: string;
68
+ requiresApproval: boolean;
69
+ isActive: boolean;
70
+ activePricesCount: number;
71
+ }
72
+ interface ServicePrice extends BaseTimestampedModel {
73
+ id: number;
74
+ billableItemType: number;
75
+ billableItemName?: string;
76
+ serviceTier: number;
77
+ serviceTierName?: string;
78
+ basePrice: number;
79
+ currency: string;
80
+ billingUnit: BillingUnit;
81
+ billingUnitDisplay?: string;
82
+ minimumChargeUnits: number;
83
+ setupFee: number;
84
+ bulkThreshold?: number;
85
+ bulkDiscountPercentage: number;
86
+ effectiveFrom: string;
87
+ effectiveUntil?: string;
88
+ isActive: boolean;
89
+ isCurrent: boolean;
90
+ }
91
+ interface BillingRecord extends BaseTimestampedModel {
92
+ id: string;
93
+ contentType: number;
94
+ contentTypeDisplay?: string;
95
+ appLabel?: string;
96
+ objectId: number;
97
+ user: number;
98
+ username?: string;
99
+ userEmail?: string;
100
+ serviceTier: number;
101
+ serviceTierName?: string;
102
+ servicePrice: number;
103
+ billableItemName?: string;
104
+ billingUnitDisplay?: string;
105
+ quantity: number;
106
+ unitPrice: number;
107
+ setupFee: number;
108
+ subtotal: number;
109
+ discountAmount: number;
110
+ taxAmount: number;
111
+ totalAmount: number;
112
+ currency: string;
113
+ status: BillingStatus;
114
+ statusDisplay?: string;
115
+ billingPeriodStart: string;
116
+ billingPeriodEnd: string;
117
+ description?: string;
118
+ notes?: string;
119
+ costCenter?: string;
120
+ funder?: string;
121
+ approvedAt?: string;
122
+ approvedBy?: number;
123
+ approvedByUsername?: string;
124
+ canBeModified: boolean;
125
+ costBreakdown: CostBreakdown;
126
+ billingPeriodDays: number;
127
+ }
128
+ interface CostBreakdown {
129
+ unitPrice: number;
130
+ subtotal: number;
131
+ setupFee: number;
132
+ bulkDiscount: number;
133
+ taxAmount: number;
134
+ total: number;
135
+ currency: string;
136
+ }
137
+ interface ServiceTierCreateRequest {
138
+ tierName: string;
139
+ description?: string;
140
+ priorityLevel?: number;
141
+ features?: string[];
142
+ maxConcurrentBookings?: number;
143
+ advanceBookingDays?: number;
144
+ baseRateMultiplier?: number;
145
+ discountPercentage?: number;
146
+ isActive?: boolean;
147
+ }
148
+ interface ServiceTierUpdateRequest {
149
+ tierName?: string;
150
+ description?: string;
151
+ priorityLevel?: number;
152
+ features?: string[];
153
+ maxConcurrentBookings?: number;
154
+ advanceBookingDays?: number;
155
+ baseRateMultiplier?: number;
156
+ discountPercentage?: number;
157
+ isActive?: boolean;
158
+ }
159
+ interface BillableItemTypeCreateRequest {
160
+ name: string;
161
+ description?: string;
162
+ contentType: number;
163
+ defaultBillingUnit?: BillingUnit;
164
+ requiresApproval?: boolean;
165
+ isActive?: boolean;
166
+ }
167
+ interface BillableItemTypeUpdateRequest {
168
+ name?: string;
169
+ description?: string;
170
+ defaultBillingUnit?: BillingUnit;
171
+ requiresApproval?: boolean;
172
+ isActive?: boolean;
173
+ }
174
+ interface ServicePriceCreateRequest {
175
+ billableItemType: number;
176
+ serviceTier: number;
177
+ basePrice: number;
178
+ currency?: string;
179
+ billingUnit: BillingUnit;
180
+ minimumChargeUnits?: number;
181
+ setupFee?: number;
182
+ bulkThreshold?: number;
183
+ bulkDiscountPercentage?: number;
184
+ effectiveFrom?: string;
185
+ effectiveUntil?: string;
186
+ isActive?: boolean;
187
+ }
188
+ interface ServicePriceUpdateRequest {
189
+ basePrice?: number;
190
+ currency?: string;
191
+ billingUnit?: BillingUnit;
192
+ minimumChargeUnits?: number;
193
+ setupFee?: number;
194
+ bulkThreshold?: number;
195
+ bulkDiscountPercentage?: number;
196
+ effectiveFrom?: string;
197
+ effectiveUntil?: string;
198
+ isActive?: boolean;
199
+ }
200
+ interface BillingRecordCreateRequest {
201
+ contentType: number;
202
+ objectId: number;
203
+ user: number;
204
+ serviceTier: number;
205
+ servicePrice: number;
206
+ quantity: number;
207
+ billingPeriodStart: string;
208
+ billingPeriodEnd: string;
209
+ description?: string;
210
+ notes?: string;
211
+ costCenter?: string;
212
+ funder?: string;
213
+ }
214
+ interface BillingRecordUpdateRequest {
215
+ status?: BillingStatus;
216
+ description?: string;
217
+ notes?: string;
218
+ costCenter?: string;
219
+ funder?: string;
220
+ }
221
+ interface ServicePriceCalculationRequest {
222
+ quantity: number;
223
+ applyBulkDiscount?: boolean;
224
+ }
225
+ interface BillingRecordSummary {
226
+ totalRecords: number;
227
+ totalAmount: number;
228
+ currency: string;
229
+ byStatus: {
230
+ [key: string]: number;
231
+ };
232
+ byPeriod: {
233
+ [key: string]: number;
234
+ };
235
+ averageAmount: number;
236
+ }
237
+ interface BillingApprovalRequest {
238
+ notes?: string;
239
+ }
240
+
241
+ interface ServiceTierQueryParams {
242
+ search?: string;
243
+ isActive?: boolean;
244
+ priorityLevel?: number;
245
+ limit?: number;
246
+ offset?: number;
247
+ ordering?: string;
248
+ }
249
+ declare class ServiceTierService extends BaseApiService {
250
+ /**
251
+ * Get all service tiers with optional filtering
252
+ */
253
+ getServiceTiers(params?: ServiceTierQueryParams): Observable<PaginatedResponse<ServiceTier>>;
254
+ /**
255
+ * Get a single service tier by ID
256
+ */
257
+ getServiceTier(id: number): Observable<ServiceTier>;
258
+ /**
259
+ * Create a new service tier
260
+ */
261
+ createServiceTier(tier: ServiceTierCreateRequest): Observable<ServiceTier>;
262
+ /**
263
+ * Update an existing service tier
264
+ */
265
+ updateServiceTier(id: number, tier: ServiceTierUpdateRequest): Observable<ServiceTier>;
266
+ /**
267
+ * Partially update a service tier
268
+ */
269
+ patchServiceTier(id: number, tier: Partial<ServiceTierUpdateRequest>): Observable<ServiceTier>;
270
+ /**
271
+ * Delete a service tier
272
+ */
273
+ deleteServiceTier(id: number): Observable<void>;
274
+ /**
275
+ * Calculate price for a given base amount using tier's modifiers
276
+ */
277
+ calculatePrice(id: number, request: {
278
+ baseAmount: number;
279
+ }): Observable<{
280
+ calculatedPrice: number;
281
+ baseAmount: number;
282
+ multiplier: number;
283
+ discount: number;
284
+ }>;
285
+ /**
286
+ * Get active service tiers (Django custom action)
287
+ */
288
+ getActiveTiers(): Observable<ServiceTier[]>;
289
+ /**
290
+ * Search service tiers by name or description
291
+ */
292
+ searchServiceTiers(query: string): Observable<PaginatedResponse<ServiceTier>>;
293
+ /**
294
+ * Get active service tiers only
295
+ */
296
+ getActiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>>;
297
+ /**
298
+ * Get inactive service tiers
299
+ */
300
+ getInactiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>>;
301
+ /**
302
+ * Get service tiers by priority level
303
+ */
304
+ getServiceTiersByPriority(priorityLevel: number): Observable<PaginatedResponse<ServiceTier>>;
305
+ /**
306
+ * Get service tiers ordered by priority (highest first)
307
+ */
308
+ getServiceTiersByPriorityDesc(): Observable<PaginatedResponse<ServiceTier>>;
309
+ static ɵfac: i0.ɵɵFactoryDeclaration<ServiceTierService, never>;
310
+ static ɵprov: i0.ɵɵInjectableDeclaration<ServiceTierService>;
311
+ }
312
+
313
+ interface BillableItemTypeQueryParams {
314
+ search?: string;
315
+ isActive?: boolean;
316
+ requiresApproval?: boolean;
317
+ defaultBillingUnit?: BillingUnit;
318
+ limit?: number;
319
+ offset?: number;
320
+ ordering?: string;
321
+ }
322
+ declare class BillableItemTypeService extends BaseApiService {
323
+ /**
324
+ * Get all billable item types with optional filtering
325
+ */
326
+ getBillableItemTypes(params?: BillableItemTypeQueryParams): Observable<PaginatedResponse<BillableItemType>>;
327
+ /**
328
+ * Get a single billable item type by ID
329
+ */
330
+ getBillableItemType(id: number): Observable<BillableItemType>;
331
+ /**
332
+ * Create a new billable item type
333
+ */
334
+ createBillableItemType(itemType: BillableItemTypeCreateRequest): Observable<BillableItemType>;
335
+ /**
336
+ * Update an existing billable item type
337
+ */
338
+ updateBillableItemType(id: number, itemType: BillableItemTypeUpdateRequest): Observable<BillableItemType>;
339
+ /**
340
+ * Partially update a billable item type
341
+ */
342
+ patchBillableItemType(id: number, itemType: Partial<BillableItemTypeUpdateRequest>): Observable<BillableItemType>;
343
+ /**
344
+ * Delete a billable item type
345
+ */
346
+ deleteBillableItemType(id: number): Observable<void>;
347
+ /**
348
+ * Get billable item types grouped by content type (Django custom action)
349
+ */
350
+ getByContentType(appLabel?: string, model?: string): Observable<PaginatedResponse<BillableItemType>>;
351
+ /**
352
+ * Search billable item types by name or description
353
+ */
354
+ searchBillableItemTypes(query: string): Observable<PaginatedResponse<BillableItemType>>;
355
+ /**
356
+ * Get active billable item types only
357
+ */
358
+ getActiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
359
+ /**
360
+ * Get inactive billable item types
361
+ */
362
+ getInactiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
363
+ /**
364
+ * Get billable item types that require approval
365
+ */
366
+ getApprovalRequiredItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
367
+ /**
368
+ * Get billable item types that don't require approval
369
+ */
370
+ getAutoApprovedItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
371
+ /**
372
+ * Get billable item types by billing unit
373
+ */
374
+ getBillableItemTypesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<BillableItemType>>;
375
+ /**
376
+ * Get hourly billing item types
377
+ */
378
+ getHourlyBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
379
+ /**
380
+ * Get usage-based billing item types
381
+ */
382
+ getUsageBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
383
+ /**
384
+ * Get flat rate billing item types
385
+ */
386
+ getFlatRateBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>>;
387
+ static ɵfac: i0.ɵɵFactoryDeclaration<BillableItemTypeService, never>;
388
+ static ɵprov: i0.ɵɵInjectableDeclaration<BillableItemTypeService>;
389
+ }
390
+
391
+ interface ServicePriceQueryParams {
392
+ search?: string;
393
+ isActive?: boolean;
394
+ billingUnit?: BillingUnit;
395
+ currency?: string;
396
+ billableItemType?: number;
397
+ serviceTier?: number;
398
+ limit?: number;
399
+ offset?: number;
400
+ ordering?: string;
401
+ }
402
+ declare class ServicePriceService extends BaseApiService {
403
+ /**
404
+ * Get all service prices with optional filtering
405
+ */
406
+ getServicePrices(params?: ServicePriceQueryParams): Observable<PaginatedResponse<ServicePrice>>;
407
+ /**
408
+ * Get a single service price by ID
409
+ */
410
+ getServicePrice(id: number): Observable<ServicePrice>;
411
+ /**
412
+ * Create a new service price
413
+ */
414
+ createServicePrice(price: ServicePriceCreateRequest): Observable<ServicePrice>;
415
+ /**
416
+ * Update an existing service price
417
+ */
418
+ updateServicePrice(id: number, price: ServicePriceUpdateRequest): Observable<ServicePrice>;
419
+ /**
420
+ * Partially update a service price
421
+ */
422
+ patchServicePrice(id: number, price: Partial<ServicePriceUpdateRequest>): Observable<ServicePrice>;
423
+ /**
424
+ * Delete a service price
425
+ */
426
+ deleteServicePrice(id: number): Observable<void>;
427
+ /**
428
+ * Calculate total cost for a given quantity
429
+ */
430
+ calculateCost(id: number, request: ServicePriceCalculationRequest): Observable<CostBreakdown>;
431
+ /**
432
+ * Get current effective prices (Django custom action)
433
+ */
434
+ getCurrentPrices(): Observable<ServicePrice[]>;
435
+ /**
436
+ * Search service prices by item or tier name
437
+ */
438
+ searchServicePrices(query: string): Observable<PaginatedResponse<ServicePrice>>;
439
+ /**
440
+ * Get active service prices only
441
+ */
442
+ getActiveServicePrices(): Observable<PaginatedResponse<ServicePrice>>;
443
+ /**
444
+ * Get inactive service prices
445
+ */
446
+ getInactiveServicePrices(): Observable<PaginatedResponse<ServicePrice>>;
447
+ /**
448
+ * Get service prices by billing unit
449
+ */
450
+ getServicePricesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<ServicePrice>>;
451
+ /**
452
+ * Get service prices by currency
453
+ */
454
+ getServicePricesByCurrency(currency: string): Observable<PaginatedResponse<ServicePrice>>;
455
+ /**
456
+ * Get service prices for a specific billable item type
457
+ */
458
+ getServicePricesForItemType(itemTypeId: number): Observable<PaginatedResponse<ServicePrice>>;
459
+ /**
460
+ * Get service prices for a specific service tier
461
+ */
462
+ getServicePricesForTier(tierId: number): Observable<PaginatedResponse<ServicePrice>>;
463
+ /**
464
+ * Get hourly service prices
465
+ */
466
+ getHourlyServicePrices(): Observable<PaginatedResponse<ServicePrice>>;
467
+ /**
468
+ * Get usage-based service prices
469
+ */
470
+ getUsageServicePrices(): Observable<PaginatedResponse<ServicePrice>>;
471
+ /**
472
+ * Get flat rate service prices
473
+ */
474
+ getFlatRateServicePrices(): Observable<PaginatedResponse<ServicePrice>>;
475
+ static ɵfac: i0.ɵɵFactoryDeclaration<ServicePriceService, never>;
476
+ static ɵprov: i0.ɵɵInjectableDeclaration<ServicePriceService>;
477
+ }
478
+
479
+ interface BillingRecordQueryParams {
480
+ search?: string;
481
+ status?: BillingStatus;
482
+ currency?: string;
483
+ costCenter?: string;
484
+ user?: number;
485
+ serviceTier?: number;
486
+ dateFrom?: string;
487
+ dateTo?: string;
488
+ limit?: number;
489
+ offset?: number;
490
+ ordering?: string;
491
+ }
492
+ declare class BillingRecordService extends BaseApiService {
493
+ /**
494
+ * Get all billing records with optional filtering
495
+ */
496
+ getBillingRecords(params?: BillingRecordQueryParams): Observable<PaginatedResponse<BillingRecord>>;
497
+ /**
498
+ * Get a single billing record by ID
499
+ */
500
+ getBillingRecord(id: string): Observable<BillingRecord>;
501
+ /**
502
+ * Create a new billing record
503
+ */
504
+ createBillingRecord(record: BillingRecordCreateRequest): Observable<BillingRecord>;
505
+ /**
506
+ * Update an existing billing record
507
+ */
508
+ updateBillingRecord(id: string, record: BillingRecordUpdateRequest): Observable<BillingRecord>;
509
+ /**
510
+ * Partially update a billing record
511
+ */
512
+ patchBillingRecord(id: string, record: Partial<BillingRecordUpdateRequest>): Observable<BillingRecord>;
513
+ /**
514
+ * Delete a billing record
515
+ */
516
+ deleteBillingRecord(id: string): Observable<void>;
517
+ /**
518
+ * Approve a billing record
519
+ */
520
+ approveBillingRecord(id: string, request: BillingApprovalRequest): Observable<BillingRecord>;
521
+ /**
522
+ * Get billing summary statistics (Django custom action)
523
+ */
524
+ getSummary(params?: {
525
+ dateFrom?: string;
526
+ dateTo?: string;
527
+ currency?: string;
528
+ costCenter?: string;
529
+ serviceTier?: number;
530
+ }): Observable<BillingRecordSummary>;
531
+ /**
532
+ * Get billing records pending approval (Django custom action)
533
+ */
534
+ getPendingApproval(): Observable<PaginatedResponse<BillingRecord>>;
535
+ /**
536
+ * Get billing records grouped by cost center (Django custom action)
537
+ */
538
+ getByCostCenter(): Observable<{
539
+ [key: string]: BillingRecord[];
540
+ }>;
541
+ /**
542
+ * Get user billing records
543
+ */
544
+ getUserBillingRecords(userId: number): Observable<PaginatedResponse<BillingRecord>>;
545
+ /**
546
+ * Get my billing records (current user)
547
+ */
548
+ getMyBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
549
+ /**
550
+ * Search billing records by description, notes, or cost center
551
+ */
552
+ searchBillingRecords(query: string): Observable<PaginatedResponse<BillingRecord>>;
553
+ /**
554
+ * Get pending billing records
555
+ */
556
+ getPendingBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
557
+ /**
558
+ * Get approved billing records
559
+ */
560
+ getApprovedBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
561
+ /**
562
+ * Get billed billing records
563
+ */
564
+ getBilledBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
565
+ /**
566
+ * Get paid billing records
567
+ */
568
+ getPaidBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
569
+ /**
570
+ * Get disputed billing records
571
+ */
572
+ getDisputedBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
573
+ /**
574
+ * Get cancelled billing records
575
+ */
576
+ getCancelledBillingRecords(): Observable<PaginatedResponse<BillingRecord>>;
577
+ /**
578
+ * Get billing records by status
579
+ */
580
+ getBillingRecordsByStatus(status: BillingStatus): Observable<PaginatedResponse<BillingRecord>>;
581
+ /**
582
+ * Get billing records by currency
583
+ */
584
+ getBillingRecordsByCurrency(currency: string): Observable<PaginatedResponse<BillingRecord>>;
585
+ /**
586
+ * Get billing records by cost center
587
+ */
588
+ getBillingRecordsByCostCenter(costCenter: string): Observable<PaginatedResponse<BillingRecord>>;
589
+ /**
590
+ * Get billing records by service tier
591
+ */
592
+ getBillingRecordsByServiceTier(tierId: number): Observable<PaginatedResponse<BillingRecord>>;
593
+ /**
594
+ * Get billing records for date range
595
+ */
596
+ getBillingRecordsByDateRange(dateFrom: string, dateTo: string): Observable<PaginatedResponse<BillingRecord>>;
597
+ static ɵfac: i0.ɵɵFactoryDeclaration<BillingRecordService, never>;
598
+ static ɵprov: i0.ɵɵInjectableDeclaration<BillingRecordService>;
599
+ }
600
+
601
+ export { BillableItemTypeService, BillingRecordService, BillingStatus, BillingUnit, CupcakeSaltedCaramel, ServicePriceService, ServiceTierService };
602
+ export type { BaseTimestampedModel, BillableItemType, BillableItemTypeCreateRequest, BillableItemTypeQueryParams, BillableItemTypeUpdateRequest, BillingApprovalRequest, BillingRecord, BillingRecordCreateRequest, BillingRecordQueryParams, BillingRecordSummary, BillingRecordUpdateRequest, CostBreakdown, PaginatedResponse, ServicePrice, ServicePriceCalculationRequest, ServicePriceCreateRequest, ServicePriceQueryParams, ServicePriceUpdateRequest, ServiceTier, ServiceTierCreateRequest, ServiceTierQueryParams, ServiceTierUpdateRequest, UserBasic };
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@noatgnu/cupcake-salted-caramel",
3
+ "version": "1.0.0",
4
+ "description": "An extension for cupcake-core that provides additional api and interfaces for facility to manage billing.",
5
+ "author": "Toan Phung",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/noatgnu/cupcake-vanilla-ng"
10
+ },
11
+ "homepage": "https://github.com/noatgnu/cupcake-vanilla-ng#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/noatgnu/cupcake-vanilla-ng/issues"
14
+ },
15
+ "peerDependencies": {
16
+ "@angular/common": "^20.1.0",
17
+ "@angular/core": "^20.1.0"
18
+ },
19
+ "dependencies": {
20
+ "tslib": "^2.3.0"
21
+ },
22
+ "sideEffects": false,
23
+ "module": "fesm2022/noatgnu-cupcake-salted-caramel.mjs",
24
+ "typings": "index.d.ts",
25
+ "exports": {
26
+ "./package.json": {
27
+ "default": "./package.json"
28
+ },
29
+ ".": {
30
+ "types": "./index.d.ts",
31
+ "default": "./fesm2022/noatgnu-cupcake-salted-caramel.mjs"
32
+ }
33
+ }
34
+ }