@@ -24,26 +24,25 @@ export default class ServiceRateSerializer extends ApplicationSerializer.extend(
2424 */
2525 normalizeSaveResponse ( store , primaryModelClass , payload , id , requestType ) {
2626 const normalized = super . normalizeSaveResponse ( store , primaryModelClass , payload , id , requestType ) ;
27-
27+
2828 // After normalization, replace rate_fees with only the saved records from backend
2929 if ( normalized . data && normalized . data . type === 'service-rate' ) {
3030 const serviceRateId = normalized . data . id ;
31- const rateFeeIds = normalized . data . relationships ?. rate_fees ?. data || [ ] ;
32-
31+
3332 // Schedule after store update using Ember run loop
3433 next ( ( ) => {
3534 const serviceRate = store . peekRecord ( 'service-rate' , serviceRateId ) ;
3635 if ( serviceRate ) {
3736 // Cleanup rate_fees duplicates (for Fixed Rate and Per-Drop)
3837 const allRateFees = serviceRate . get ( 'rate_fees' ) . toArray ( ) ;
39- const savedRateFees = allRateFees . filter ( f => ! f . isNew ) ;
40- const unsavedRateFees = allRateFees . filter ( f => f . isNew ) ;
41-
38+ const savedRateFees = allRateFees . filter ( ( f ) => ! f . isNew ) ;
39+ const unsavedRateFees = allRateFees . filter ( ( f ) => f . isNew ) ;
40+
4241 // Create a map of saved fees by distance
43- const savedByDistance = new Map ( savedRateFees . map ( f => [ f . distance , f ] ) ) ;
44-
42+ const savedByDistance = new Map ( savedRateFees . map ( ( f ) => [ f . distance , f ] ) ) ;
43+
4544 // Only remove unsaved fees that duplicate saved fees
46- unsavedRateFees . forEach ( fee => {
45+ unsavedRateFees . forEach ( ( fee ) => {
4746 if ( savedByDistance . has ( fee . distance ) ) {
4847 serviceRate . get ( 'rate_fees' ) . removeObject ( fee ) ;
4948 fee . unloadRecord ( ) ;
@@ -52,24 +51,21 @@ export default class ServiceRateSerializer extends ApplicationSerializer.extend(
5251
5352 // Cleanup parcel_fees duplicates
5453 const allParcelFees = serviceRate . get ( 'parcel_fees' ) . toArray ( ) ;
55- const savedParcelFees = allParcelFees . filter ( f => ! f . isNew ) ;
56- const unsavedParcelFees = allParcelFees . filter ( f => f . isNew ) ;
57-
58- // Create a map of saved parcel fees by uuid (or another unique key)
59- const savedParcelByUuid = new Map ( savedParcelFees . map ( f => [ f . get ( 'id' ) , f ] ) ) ;
60-
54+ const savedParcelFees = allParcelFees . filter ( ( f ) => ! f . isNew ) ;
55+ const unsavedParcelFees = allParcelFees . filter ( ( f ) => f . isNew ) ;
56+
57+ // // Create a map of saved parcel fees by uuid (or another unique key)
58+ // const savedParcelByUuid = new Map(savedParcelFees.map((f) => [f.get('id'), f]));
59+
6160 // Remove unsaved parcel fees that have a saved version
62- unsavedParcelFees . forEach ( fee => {
61+ unsavedParcelFees . forEach ( ( fee ) => {
6362 // For parcel fees, we need to check if there's a duplicate based on attributes
6463 // Since they don't have a simple key like distance, we'll just remove all unsaved ones
6564 // that don't have unique identifying attributes
66- const hasDuplicate = savedParcelFees . some ( saved =>
67- saved . size === fee . size &&
68- saved . length === fee . length &&
69- saved . width === fee . width &&
70- saved . height === fee . height
65+ const hasDuplicate = savedParcelFees . some (
66+ ( saved ) => saved . size === fee . size && saved . length === fee . length && saved . width === fee . width && saved . height === fee . height
7167 ) ;
72-
68+
7369 if ( hasDuplicate ) {
7470 serviceRate . get ( 'parcel_fees' ) . removeObject ( fee ) ;
7571 fee . unloadRecord ( ) ;
@@ -78,7 +74,7 @@ export default class ServiceRateSerializer extends ApplicationSerializer.extend(
7874 }
7975 } ) ;
8076 }
81-
77+
8278 return normalized ;
8379 }
8480}
0 commit comments