mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
Merged PR 2031: feat(crm): add customer bon redemption feature
feat(crm): add customer bon redemption feature - New library @isa/crm/feature/customer-bon-redemption - Implement bon validation and redemption flow - Add SignalStore for state management - Add resource pattern for reactive data loading - Add facade for business logic abstraction - Add Zod schemas for runtime validation - Integrate with loyalty card API endpoints - Add accessibility and E2E test attributes - Remove mock provider (use real facade) - Exclude generated swagger files from linting Components: - BonInputFieldComponent - input with validation - BonDetailsDisplayComponent - shows validated bon - BonRedemptionButtonComponent - redemption action Data Access: - CustomerBonRedemptionFacade - business logic - CustomerBonCheckResource - reactive validation - BonRedemptionStore - component state - CrmSearchService - API integration (checkBon, addBon) Issue: 5314 Related work items: #5314
This commit is contained in:
committed by
Nino Righi
parent
8c0de558a4
commit
fc6d29d62f
@@ -106,6 +106,8 @@ export { KeyValueDTOOfStringAndInteger } from './models/key-value-dtoof-string-a
|
||||
export { ResponseArgsOfKeyValueDTOOfStringAndString } from './models/response-args-of-key-value-dtoof-string-and-string';
|
||||
export { ResponseArgsOfLoyaltyBookingInfoDTO } from './models/response-args-of-loyalty-booking-info-dto';
|
||||
export { LoyaltyBookingValues } from './models/loyalty-booking-values';
|
||||
export { ResponseArgsOfLoyaltyBonResponse } from './models/response-args-of-loyalty-bon-response';
|
||||
export { LoyaltyBonResponse } from './models/loyalty-bon-response';
|
||||
export { LoyaltyBonValues } from './models/loyalty-bon-values';
|
||||
export { ResponseArgsOfPayerDTO } from './models/response-args-of-payer-dto';
|
||||
export { ResponseArgsOfShippingAddressDTO } from './models/response-args-of-shipping-address-dto';
|
||||
|
||||
13
generated/swagger/crm-api/src/models/loyalty-bon-response.ts
Normal file
13
generated/swagger/crm-api/src/models/loyalty-bon-response.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
/* tslint:disable */
|
||||
export interface LoyaltyBonResponse {
|
||||
|
||||
/**
|
||||
* Bon Datum
|
||||
*/
|
||||
date?: string;
|
||||
|
||||
/**
|
||||
* Summe
|
||||
*/
|
||||
total?: number;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/* tslint:disable */
|
||||
import { ResponseArgs } from './response-args';
|
||||
import { LoyaltyBonResponse } from './loyalty-bon-response';
|
||||
export interface ResponseArgsOfLoyaltyBonResponse extends ResponseArgs{
|
||||
result?: LoyaltyBonResponse;
|
||||
}
|
||||
@@ -12,8 +12,9 @@ import { ResponseArgsOfLoyaltyBookingInfoDTO } from '../models/response-args-of-
|
||||
import { LoyaltyBookingValues } from '../models/loyalty-booking-values';
|
||||
import { ResponseArgsOfIEnumerableOfKeyValueDTOOfStringAndInteger } from '../models/response-args-of-ienumerable-of-key-value-dtoof-string-and-integer';
|
||||
import { ResponseArgsOfKeyValueDTOOfStringAndString } from '../models/response-args-of-key-value-dtoof-string-and-string';
|
||||
import { ResponseArgsOfBoolean } from '../models/response-args-of-boolean';
|
||||
import { ResponseArgsOfLoyaltyBonResponse } from '../models/response-args-of-loyalty-bon-response';
|
||||
import { LoyaltyBonValues } from '../models/loyalty-bon-values';
|
||||
import { ResponseArgsOfBoolean } from '../models/response-args-of-boolean';
|
||||
import { ResponseArgsOfNullableBoolean } from '../models/response-args-of-nullable-boolean';
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
@@ -206,7 +207,7 @@ class LoyaltyCardService extends __BaseService {
|
||||
*
|
||||
* - `locale`:
|
||||
*/
|
||||
LoyaltyCardLoyaltyBonCheckResponse(params: LoyaltyCardService.LoyaltyCardLoyaltyBonCheckParams): __Observable<__StrictHttpResponse<ResponseArgsOfBoolean>> {
|
||||
LoyaltyCardLoyaltyBonCheckResponse(params: LoyaltyCardService.LoyaltyCardLoyaltyBonCheckParams): __Observable<__StrictHttpResponse<ResponseArgsOfLoyaltyBonResponse>> {
|
||||
let __params = this.newParams();
|
||||
let __headers = new HttpHeaders();
|
||||
let __body: any = null;
|
||||
@@ -226,7 +227,7 @@ class LoyaltyCardService extends __BaseService {
|
||||
return this.http.request<any>(req).pipe(
|
||||
__filter(_r => _r instanceof HttpResponse),
|
||||
__map((_r) => {
|
||||
return _r as __StrictHttpResponse<ResponseArgsOfBoolean>;
|
||||
return _r as __StrictHttpResponse<ResponseArgsOfLoyaltyBonResponse>;
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -240,9 +241,9 @@ class LoyaltyCardService extends __BaseService {
|
||||
*
|
||||
* - `locale`:
|
||||
*/
|
||||
LoyaltyCardLoyaltyBonCheck(params: LoyaltyCardService.LoyaltyCardLoyaltyBonCheckParams): __Observable<ResponseArgsOfBoolean> {
|
||||
LoyaltyCardLoyaltyBonCheck(params: LoyaltyCardService.LoyaltyCardLoyaltyBonCheckParams): __Observable<ResponseArgsOfLoyaltyBonResponse> {
|
||||
return this.LoyaltyCardLoyaltyBonCheckResponse(params).pipe(
|
||||
__map(_r => _r.body as ResponseArgsOfBoolean)
|
||||
__map(_r => _r.body as ResponseArgsOfLoyaltyBonResponse)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user