@noatgnu/cupcake-salted-caramel 1.2.1 → 1.2.3

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 CHANGED
@@ -1,63 +1,88 @@
1
- # CupcakeSaltedCaramel
1
+ # Cupcake Salted Caramel
2
2
 
3
- This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.
3
+ The `cupcake-salted-caramel` library provides services and models for handling billing, service tiers, and pricing within the Cupcake ecosystem.
4
4
 
5
- ## Code scaffolding
5
+ ## Key Features
6
6
 
7
- Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
7
+ - **Billing Management:** A comprehensive system for creating, tracking, and managing billing records.
8
+ - **Service Tiers:** Define different tiers of service with their own pricing rules and modifiers.
9
+ - **Flexible Pricing:** Manage prices for different services and billable items.
8
10
 
9
- ```bash
10
- ng generate component component-name
11
- ```
11
+ ## Installation
12
12
 
13
- For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
13
+ To install the `@noatgnu/cupcake-salted-caramel` library, run the following command:
14
14
 
15
15
  ```bash
16
- ng generate --help
16
+ npm install @noatgnu/cupcake-salted-caramel
17
17
  ```
18
18
 
19
- ## Building
19
+ This library is an extension of `@noatgnu/cupcake-core` and depends on it. Make sure you have `@noatgnu/cupcake-core` installed and configured in your application.
20
20
 
21
- To build the library, run:
21
+ ## Services
22
22
 
23
- ```bash
24
- ng build cupcake-salted-caramel
25
- ```
23
+ ### BillingRecordService
26
24
 
27
- This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
25
+ The `BillingRecordService` is the core of the billing system, responsible for managing billing records:
28
26
 
29
- ### Publishing the Library
27
+ - **CRUD Operations:** Create, read, update, and delete billing records.
28
+ - **Status Tracking:** Track the status of billing records (e.g., pending, approved, paid, disputed).
29
+ - **Approval Workflow:** Approve billing records before they are processed.
30
+ - **Querying & Reporting:** Get billing summaries and filter records by status, user, cost center, and date range.
30
31
 
31
- Once the project is built, you can publish your library by following these steps:
32
+ **Usage:**
32
33
 
33
- 1. Navigate to the `dist` directory:
34
- ```bash
35
- cd dist/cupcake-salted-caramel
36
- ```
34
+ ```typescript
35
+ import { BillingRecordService } from '@noatgnu/cupcake-salted-caramel';
37
36
 
38
- 2. Run the `npm publish` command to publish your library to the npm registry:
39
- ```bash
40
- npm publish
41
- ```
37
+ @Component({ ... })
38
+ export class MyComponent {
39
+ constructor(private billingRecordService: BillingRecordService) {
40
+ // Get all billing records pending approval
41
+ this.billingRecordService.getPendingApproval().subscribe(response => {
42
+ // ...
43
+ });
44
+ }
45
+ }
46
+ ```
42
47
 
43
- ## Running unit tests
48
+ ### ServiceTierService
44
49
 
45
- To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
50
+ The `ServiceTierService` handles the management of service tiers:
46
51
 
47
- ```bash
48
- ng test
49
- ```
52
+ - **CRUD Operations:** Create, read, update, and delete service tiers.
53
+ - **Price Calculation:** Calculate prices based on a service tier's modifiers (e.g., multipliers, discounts).
54
+ - **Querying:** Find service tiers by priority, active status, and other attributes.
50
55
 
51
- ## Running end-to-end tests
56
+ **Usage:**
52
57
 
53
- For end-to-end (e2e) testing, run:
58
+ ```typescript
59
+ import { ServiceTierService } from '@noatgnu/cupcake-salted-caramel';
54
60
 
55
- ```bash
56
- ng e2e
61
+ @Component({ ... })
62
+ export class MyComponent {
63
+ constructor(private serviceTierService: ServiceTierService) {
64
+ // Get all active service tiers
65
+ this.serviceTierService.getActiveTiers().subscribe(tiers => {
66
+ // ...
67
+ });
68
+ }
69
+ }
57
70
  ```
58
71
 
59
- Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
72
+ ### Other Services
73
+
74
+ This library also includes the following services:
75
+
76
+ - **`ServicePriceService`:** For managing the prices of different services.
77
+ - **`BillableItemTypeService`:** For defining the types of items that can be billed.
78
+
79
+ ## Models
80
+
81
+ The `cupcake-salted-caramel` library provides a set of models for working with billing and service data. Key models include:
60
82
 
61
- ## Additional Resources
83
+ - `BillingRecord`
84
+ - `ServiceTier`
85
+ - `ServicePrice`
86
+ - `BillableItemType`
62
87
 
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.
88
+ This library is essential for any Cupcake application that needs to implement a billing or service-based pricing system.
@@ -3,14 +3,14 @@ import { Component, Injectable } from '@angular/core';
3
3
  import { BaseApiService } from '@noatgnu/cupcake-core';
4
4
 
5
5
  class CupcakeSaltedCaramel {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CupcakeSaltedCaramel, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: CupcakeSaltedCaramel, isStandalone: true, selector: "ccsc-cupcake-salted-caramel", ngImport: i0, template: `
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CupcakeSaltedCaramel, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: CupcakeSaltedCaramel, isStandalone: true, selector: "ccsc-cupcake-salted-caramel", ngImport: i0, template: `
8
8
  <p>
9
9
  cupcake-salted-caramel works!
10
10
  </p>
11
11
  `, isInline: true, styles: [""] });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: CupcakeSaltedCaramel, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CupcakeSaltedCaramel, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'ccsc-cupcake-salted-caramel', imports: [], template: `
16
16
  <p>
@@ -120,10 +120,10 @@ class ServiceTierService extends BaseApiService {
120
120
  getServiceTiersByPriorityDesc() {
121
121
  return this.getServiceTiers({ ordering: '-priority_level' });
122
122
  }
123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServiceTierService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
124
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServiceTierService, providedIn: 'root' });
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServiceTierService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServiceTierService, providedIn: 'root' });
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServiceTierService, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServiceTierService, decorators: [{
127
127
  type: Injectable,
128
128
  args: [{
129
129
  providedIn: 'root'
@@ -229,10 +229,10 @@ class BillableItemTypeService extends BaseApiService {
229
229
  getFlatRateBillingItemTypes() {
230
230
  return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.FLAT });
231
231
  }
232
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillableItemTypeService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
233
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillableItemTypeService, providedIn: 'root' });
232
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillableItemTypeService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
233
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillableItemTypeService, providedIn: 'root' });
234
234
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillableItemTypeService, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillableItemTypeService, decorators: [{
236
236
  type: Injectable,
237
237
  args: [{
238
238
  providedIn: 'root'
@@ -349,10 +349,10 @@ class ServicePriceService extends BaseApiService {
349
349
  getFlatRateServicePrices() {
350
350
  return this.getServicePrices({ billingUnit: BillingUnit.FLAT });
351
351
  }
352
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServicePriceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
353
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServicePriceService, providedIn: 'root' });
352
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServicePriceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
353
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServicePriceService, providedIn: 'root' });
354
354
  }
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ServicePriceService, decorators: [{
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: ServicePriceService, decorators: [{
356
356
  type: Injectable,
357
357
  args: [{
358
358
  providedIn: 'root'
@@ -506,10 +506,10 @@ class BillingRecordService extends BaseApiService {
506
506
  getBillingRecordsByDateRange(dateFrom, dateTo) {
507
507
  return this.getBillingRecords({ dateFrom, dateTo });
508
508
  }
509
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillingRecordService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
510
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillingRecordService, providedIn: 'root' });
509
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillingRecordService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
510
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillingRecordService, providedIn: 'root' });
511
511
  }
512
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: BillingRecordService, decorators: [{
512
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: BillingRecordService, decorators: [{
513
513
  type: Injectable,
514
514
  args: [{
515
515
  providedIn: 'root'
@@ -1 +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 '@noatgnu/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 '@noatgnu/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 '@noatgnu/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 '@noatgnu/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\nexport * from './lib/models';\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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"}
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 {\n HOURLY = 'hourly',\n DAILY = 'daily',\n USAGE = 'usage',\n SAMPLE = 'sample',\n FLAT = 'flat',\n CUSTOM = 'custom'\n}\n\nexport enum BillingStatus {\n PENDING = 'pending',\n APPROVED = 'approved',\n BILLED = 'billed',\n PAID = 'paid',\n DISPUTED = 'disputed',\n CANCELLED = 'cancelled'\n}","// Base types and enums\nexport * from './base';\nexport * from './enums';\n\n// Billing models\nexport * from './billing';","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiService } from '@noatgnu/cupcake-core';\n\nimport {\n ServiceTier,\n ServiceTierCreateRequest,\n ServiceTierUpdateRequest,\n PaginatedResponse\n} from '../models';\n\nexport interface ServiceTierQueryParams {\n search?: string;\n isActive?: boolean;\n priorityLevel?: number;\n limit?: number;\n offset?: number;\n ordering?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServiceTierService extends BaseApiService {\n\n /**\n * Get all service tiers with optional filtering\n */\n getServiceTiers(params?: ServiceTierQueryParams): Observable<PaginatedResponse<ServiceTier>> {\n const httpParams = this.buildHttpParams(params);\n return this.get<PaginatedResponse<ServiceTier>>(`${this.apiUrl}/service-tiers/`, { params: httpParams });\n }\n\n /**\n * Get a single service tier by ID\n */\n getServiceTier(id: number): Observable<ServiceTier> {\n return this.get<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`);\n }\n\n /**\n * Create a new service tier\n */\n createServiceTier(tier: ServiceTierCreateRequest): Observable<ServiceTier> {\n return this.post<ServiceTier>(`${this.apiUrl}/service-tiers/`, tier);\n }\n\n /**\n * Update an existing service tier\n */\n updateServiceTier(id: number, tier: ServiceTierUpdateRequest): Observable<ServiceTier> {\n return this.put<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`, tier);\n }\n\n /**\n * Partially update a service tier\n */\n patchServiceTier(id: number, tier: Partial<ServiceTierUpdateRequest>): Observable<ServiceTier> {\n return this.patch<ServiceTier>(`${this.apiUrl}/service-tiers/${id}/`, tier);\n }\n\n /**\n * Delete a service tier\n */\n deleteServiceTier(id: number): Observable<void> {\n return this.delete<void>(`${this.apiUrl}/service-tiers/${id}/`);\n }\n\n /**\n * Calculate price for a given base amount using tier's modifiers\n */\n calculatePrice(id: number, request: { baseAmount: number }): Observable<{ \n calculatedPrice: number; \n baseAmount: number; \n multiplier: number; \n discount: number \n }> {\n return this.post<{ \n calculatedPrice: number; \n baseAmount: number; \n multiplier: number; \n discount: number \n }>(`${this.apiUrl}/service-tiers/${id}/calculate_price/`, request);\n }\n\n /**\n * Get active service tiers (Django custom action)\n */\n getActiveTiers(): Observable<ServiceTier[]> {\n return this.get<ServiceTier[]>(`${this.apiUrl}/service-tiers/active_tiers/`);\n }\n\n /**\n * Search service tiers by name or description\n */\n searchServiceTiers(query: string): Observable<PaginatedResponse<ServiceTier>> {\n return this.getServiceTiers({ search: query });\n }\n\n /**\n * Get active service tiers only\n */\n getActiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>> {\n return this.getServiceTiers({ isActive: true });\n }\n\n /**\n * Get inactive service tiers\n */\n getInactiveServiceTiers(): Observable<PaginatedResponse<ServiceTier>> {\n return this.getServiceTiers({ isActive: false });\n }\n\n /**\n * Get service tiers by priority level\n */\n getServiceTiersByPriority(priorityLevel: number): Observable<PaginatedResponse<ServiceTier>> {\n return this.getServiceTiers({ priorityLevel });\n }\n\n /**\n * Get service tiers ordered by priority (highest first)\n */\n getServiceTiersByPriorityDesc(): Observable<PaginatedResponse<ServiceTier>> {\n return this.getServiceTiers({ ordering: '-priority_level' });\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiService } from '@noatgnu/cupcake-core';\n\nimport {\n BillableItemType,\n BillableItemTypeCreateRequest,\n BillableItemTypeUpdateRequest,\n BillingUnit,\n PaginatedResponse\n} from '../models';\n\nexport interface BillableItemTypeQueryParams {\n search?: string;\n isActive?: boolean;\n requiresApproval?: boolean;\n defaultBillingUnit?: BillingUnit;\n limit?: number;\n offset?: number;\n ordering?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BillableItemTypeService extends BaseApiService {\n\n /**\n * Get all billable item types with optional filtering\n */\n getBillableItemTypes(params?: BillableItemTypeQueryParams): Observable<PaginatedResponse<BillableItemType>> {\n const httpParams = this.buildHttpParams(params);\n return this.get<PaginatedResponse<BillableItemType>>(`${this.apiUrl}/billable-item-types/`, { params: httpParams });\n }\n\n /**\n * Get a single billable item type by ID\n */\n getBillableItemType(id: number): Observable<BillableItemType> {\n return this.get<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`);\n }\n\n /**\n * Create a new billable item type\n */\n createBillableItemType(itemType: BillableItemTypeCreateRequest): Observable<BillableItemType> {\n return this.post<BillableItemType>(`${this.apiUrl}/billable-item-types/`, itemType);\n }\n\n /**\n * Update an existing billable item type\n */\n updateBillableItemType(id: number, itemType: BillableItemTypeUpdateRequest): Observable<BillableItemType> {\n return this.put<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`, itemType);\n }\n\n /**\n * Partially update a billable item type\n */\n patchBillableItemType(id: number, itemType: Partial<BillableItemTypeUpdateRequest>): Observable<BillableItemType> {\n return this.patch<BillableItemType>(`${this.apiUrl}/billable-item-types/${id}/`, itemType);\n }\n\n /**\n * Delete a billable item type\n */\n deleteBillableItemType(id: number): Observable<void> {\n return this.delete<void>(`${this.apiUrl}/billable-item-types/${id}/`);\n }\n\n /**\n * Get billable item types grouped by content type (Django custom action)\n */\n getByContentType(appLabel?: string, model?: string): Observable<PaginatedResponse<BillableItemType>> {\n const params = this.buildHttpParams({ appLabel, model });\n return this.get<PaginatedResponse<BillableItemType>>(`${this.apiUrl}/billable-item-types/by_content_type/`, { params });\n }\n\n /**\n * Search billable item types by name or description\n */\n searchBillableItemTypes(query: string): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ search: query });\n }\n\n /**\n * Get active billable item types only\n */\n getActiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ isActive: true });\n }\n\n /**\n * Get inactive billable item types\n */\n getInactiveBillableItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ isActive: false });\n }\n\n /**\n * Get billable item types that require approval\n */\n getApprovalRequiredItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ requiresApproval: true });\n }\n\n /**\n * Get billable item types that don't require approval\n */\n getAutoApprovedItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ requiresApproval: false });\n }\n\n /**\n * Get billable item types by billing unit\n */\n getBillableItemTypesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ defaultBillingUnit: billingUnit });\n }\n\n /**\n * Get hourly billing item types\n */\n getHourlyBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.HOURLY });\n }\n\n /**\n * Get usage-based billing item types\n */\n getUsageBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.USAGE });\n }\n\n /**\n * Get flat rate billing item types\n */\n getFlatRateBillingItemTypes(): Observable<PaginatedResponse<BillableItemType>> {\n return this.getBillableItemTypes({ defaultBillingUnit: BillingUnit.FLAT });\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiService } from '@noatgnu/cupcake-core';\n\nimport {\n ServicePrice,\n ServicePriceCreateRequest,\n ServicePriceUpdateRequest,\n ServicePriceCalculationRequest,\n CostBreakdown,\n BillingUnit,\n PaginatedResponse\n} from '../models';\n\nexport interface ServicePriceQueryParams {\n search?: string;\n isActive?: boolean;\n billingUnit?: BillingUnit;\n currency?: string;\n billableItemType?: number;\n serviceTier?: number;\n limit?: number;\n offset?: number;\n ordering?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServicePriceService extends BaseApiService {\n\n /**\n * Get all service prices with optional filtering\n */\n getServicePrices(params?: ServicePriceQueryParams): Observable<PaginatedResponse<ServicePrice>> {\n const httpParams = this.buildHttpParams(params);\n return this.get<PaginatedResponse<ServicePrice>>(`${this.apiUrl}/service-prices/`, { params: httpParams });\n }\n\n /**\n * Get a single service price by ID\n */\n getServicePrice(id: number): Observable<ServicePrice> {\n return this.get<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`);\n }\n\n /**\n * Create a new service price\n */\n createServicePrice(price: ServicePriceCreateRequest): Observable<ServicePrice> {\n return this.post<ServicePrice>(`${this.apiUrl}/service-prices/`, price);\n }\n\n /**\n * Update an existing service price\n */\n updateServicePrice(id: number, price: ServicePriceUpdateRequest): Observable<ServicePrice> {\n return this.put<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`, price);\n }\n\n /**\n * Partially update a service price\n */\n patchServicePrice(id: number, price: Partial<ServicePriceUpdateRequest>): Observable<ServicePrice> {\n return this.patch<ServicePrice>(`${this.apiUrl}/service-prices/${id}/`, price);\n }\n\n /**\n * Delete a service price\n */\n deleteServicePrice(id: number): Observable<void> {\n return this.delete<void>(`${this.apiUrl}/service-prices/${id}/`);\n }\n\n /**\n * Calculate total cost for a given quantity\n */\n calculateCost(id: number, request: ServicePriceCalculationRequest): Observable<CostBreakdown> {\n return this.post<CostBreakdown>(`${this.apiUrl}/service-prices/${id}/calculate_cost/`, request);\n }\n\n /**\n * Get current effective prices (Django custom action)\n */\n getCurrentPrices(): Observable<ServicePrice[]> {\n return this.get<ServicePrice[]>(`${this.apiUrl}/service-prices/current_prices/`);\n }\n\n /**\n * Search service prices by item or tier name\n */\n searchServicePrices(query: string): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ search: query });\n }\n\n /**\n * Get active service prices only\n */\n getActiveServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ isActive: true });\n }\n\n /**\n * Get inactive service prices\n */\n getInactiveServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ isActive: false });\n }\n\n /**\n * Get service prices by billing unit\n */\n getServicePricesByUnit(billingUnit: BillingUnit): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ billingUnit });\n }\n\n /**\n * Get service prices by currency\n */\n getServicePricesByCurrency(currency: string): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ currency });\n }\n\n /**\n * Get service prices for a specific billable item type\n */\n getServicePricesForItemType(itemTypeId: number): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ billableItemType: itemTypeId });\n }\n\n /**\n * Get service prices for a specific service tier\n */\n getServicePricesForTier(tierId: number): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ serviceTier: tierId });\n }\n\n /**\n * Get hourly service prices\n */\n getHourlyServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ billingUnit: BillingUnit.HOURLY });\n }\n\n /**\n * Get usage-based service prices\n */\n getUsageServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ billingUnit: BillingUnit.USAGE });\n }\n\n /**\n * Get flat rate service prices\n */\n getFlatRateServicePrices(): Observable<PaginatedResponse<ServicePrice>> {\n return this.getServicePrices({ billingUnit: BillingUnit.FLAT });\n }\n\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseApiService } from '@noatgnu/cupcake-core';\n\nimport {\n BillingRecord,\n BillingRecordCreateRequest,\n BillingRecordUpdateRequest,\n BillingRecordSummary,\n BillingApprovalRequest,\n BillingStatus,\n PaginatedResponse\n} from '../models';\n\nexport interface BillingRecordQueryParams {\n search?: string;\n status?: BillingStatus;\n currency?: string;\n costCenter?: string;\n user?: number;\n serviceTier?: number;\n dateFrom?: string;\n dateTo?: string;\n limit?: number;\n offset?: number;\n ordering?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BillingRecordService extends BaseApiService {\n\n /**\n * Get all billing records with optional filtering\n */\n getBillingRecords(params?: BillingRecordQueryParams): Observable<PaginatedResponse<BillingRecord>> {\n const httpParams = this.buildHttpParams(params);\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/`, { params: httpParams });\n }\n\n /**\n * Get a single billing record by ID\n */\n getBillingRecord(id: string): Observable<BillingRecord> {\n return this.get<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`);\n }\n\n /**\n * Create a new billing record\n */\n createBillingRecord(record: BillingRecordCreateRequest): Observable<BillingRecord> {\n return this.post<BillingRecord>(`${this.apiUrl}/billing-records/`, record);\n }\n\n /**\n * Update an existing billing record\n */\n updateBillingRecord(id: string, record: BillingRecordUpdateRequest): Observable<BillingRecord> {\n return this.put<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`, record);\n }\n\n /**\n * Partially update a billing record\n */\n patchBillingRecord(id: string, record: Partial<BillingRecordUpdateRequest>): Observable<BillingRecord> {\n return this.patch<BillingRecord>(`${this.apiUrl}/billing-records/${id}/`, record);\n }\n\n /**\n * Delete a billing record\n */\n deleteBillingRecord(id: string): Observable<void> {\n return this.delete<void>(`${this.apiUrl}/billing-records/${id}/`);\n }\n\n /**\n * Approve a billing record\n */\n approveBillingRecord(id: string, request: BillingApprovalRequest): Observable<BillingRecord> {\n return this.post<BillingRecord>(`${this.apiUrl}/billing-records/${id}/approve/`, request);\n }\n\n\n /**\n * Get billing summary statistics (Django custom action)\n */\n getSummary(params?: { \n dateFrom?: string; \n dateTo?: string; \n currency?: string;\n costCenter?: string;\n serviceTier?: number;\n }): Observable<BillingRecordSummary> {\n const httpParams = this.buildHttpParams(params);\n return this.get<BillingRecordSummary>(`${this.apiUrl}/billing-records/summary/`, { params: httpParams });\n }\n\n /**\n * Get billing records pending approval (Django custom action)\n */\n getPendingApproval(): Observable<PaginatedResponse<BillingRecord>> {\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/pending_approval/`);\n }\n\n /**\n * Get billing records grouped by cost center (Django custom action)\n */\n getByCostCenter(): Observable<{ [key: string]: BillingRecord[] }> {\n return this.get<{ [key: string]: BillingRecord[] }>(`${this.apiUrl}/billing-records/by_cost_center/`);\n }\n\n /**\n * Get user billing records\n */\n getUserBillingRecords(userId: number): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ user: userId });\n }\n\n /**\n * Get my billing records (current user)\n */\n getMyBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.get<PaginatedResponse<BillingRecord>>(`${this.apiUrl}/billing-records/my_records/`);\n }\n\n /**\n * Search billing records by description, notes, or cost center\n */\n searchBillingRecords(query: string): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ search: query });\n }\n\n /**\n * Get pending billing records\n */\n getPendingBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.PENDING });\n }\n\n /**\n * Get approved billing records\n */\n getApprovedBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.APPROVED });\n }\n\n /**\n * Get billed billing records\n */\n getBilledBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.BILLED });\n }\n\n /**\n * Get paid billing records\n */\n getPaidBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.PAID });\n }\n\n /**\n * Get disputed billing records\n */\n getDisputedBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.DISPUTED });\n }\n\n /**\n * Get cancelled billing records\n */\n getCancelledBillingRecords(): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status: BillingStatus.CANCELLED });\n }\n\n /**\n * Get billing records by status\n */\n getBillingRecordsByStatus(status: BillingStatus): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ status });\n }\n\n /**\n * Get billing records by currency\n */\n getBillingRecordsByCurrency(currency: string): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ currency });\n }\n\n /**\n * Get billing records by cost center\n */\n getBillingRecordsByCostCenter(costCenter: string): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ costCenter });\n }\n\n /**\n * Get billing records by service tier\n */\n getBillingRecordsByServiceTier(tierId: number): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ serviceTier: tierId });\n }\n\n /**\n * Get billing records for date range\n */\n getBillingRecordsByDateRange(dateFrom: string, dateTo: string): Observable<PaginatedResponse<BillingRecord>> {\n return this.getBillingRecords({ dateFrom, dateTo });\n }\n\n}","// Billing and financial management services\nexport * from './service-tier';\nexport * from './billable-item-type';\nexport * from './service-price';\nexport * from './billing-record';","/*\n * Public API Surface of cupcake-salted-caramel\n */\n\nexport * from './lib/cupcake-salted-caramel';\n\nexport * from './lib/models';\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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noatgnu/cupcake-salted-caramel",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "An extension for cupcake-core that provides additional api and interfaces for facility to manage billing.",
5
5
  "author": "Toan Phung",
6
6
  "license": "MIT",
@@ -13,22 +13,23 @@
13
13
  "url": "https://github.com/noatgnu/cupcake-vanilla-ng/issues"
14
14
  },
15
15
  "peerDependencies": {
16
- "@angular/common": "^20.3.3",
17
- "@angular/core": "^20.3.3"
16
+ "@angular/common": "^21.0.0",
17
+ "@angular/core": "^21.0.0"
18
18
  },
19
19
  "dependencies": {
20
20
  "tslib": "^2.3.0"
21
21
  },
22
22
  "sideEffects": false,
23
23
  "module": "fesm2022/noatgnu-cupcake-salted-caramel.mjs",
24
- "typings": "index.d.ts",
24
+ "typings": "types/noatgnu-cupcake-salted-caramel.d.ts",
25
25
  "exports": {
26
26
  "./package.json": {
27
27
  "default": "./package.json"
28
28
  },
29
29
  ".": {
30
- "types": "./index.d.ts",
30
+ "types": "./types/noatgnu-cupcake-salted-caramel.d.ts",
31
31
  "default": "./fesm2022/noatgnu-cupcake-salted-caramel.mjs"
32
32
  }
33
- }
33
+ },
34
+ "type": "module"
34
35
  }