From aa66e43e67303701f56db8ff9fd84c1f256445f5 Mon Sep 17 00:00:00 2001 From: h8floom Date: Sat, 25 Oct 2025 00:38:37 +0400 Subject: [PATCH] lab3 --- .gradle/8.14.3/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.14.3/checksums/md5-checksums.bin | Bin 18597 -> 20947 bytes .gradle/8.14.3/checksums/sha1-checksums.bin | Bin 18767 -> 26543 bytes .../executionHistory/executionHistory.bin | Bin 250872 -> 473319 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.14.3/fileHashes/fileHashes.bin | Bin 25797 -> 30897 bytes .gradle/8.14.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.14.3/fileHashes/resourceHashesCache.bin | Bin 22611 -> 26249 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 19577 -> 20171 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes build.gradle | 5 +- .../controller/CustomerController.class | Bin 4842 -> 5038 bytes .../controller/DeliveryController.class | Bin 4849 -> 5620 bytes .../example/controller/OrderController.class | Bin 5830 -> 6698 bytes .../main/com/example/dto/CustomerRs.class | Bin 1435 -> 1497 bytes .../main/com/example/dto/DeliveryRq.class | Bin 1798 -> 1893 bytes .../main/com/example/dto/DeliveryRs.class | Bin 1879 -> 1953 bytes .../java/main/com/example/dto/OrderRq.class | Bin 1517 -> 1574 bytes .../java/main/com/example/dto/OrderRs.class | Bin 1838 -> 1900 bytes .../main/com/example/entity/BaseEntity.class | Bin 1154 -> 1745 bytes .../main/com/example/entity/Customer.class | Bin 1703 -> 2363 bytes .../main/com/example/entity/Delivery.class | Bin 1455 -> 2983 bytes .../java/main/com/example/entity/Order.class | Bin 1400 -> 3535 bytes .../com/example/mapper/CustomerMapper.class | Bin 1427 -> 1470 bytes .../com/example/mapper/DeliveryMapper.class | Bin 1619 -> 1670 bytes .../main/com/example/mapper/OrderMapper.class | Bin 1307 -> 2429 bytes .../example/repository/CommonRepository.class | Bin 632 -> 0 bytes ...ustomerRepository$CustomerOrderStats.class | Bin 0 -> 371 bytes .../repository/CustomerRepository.class | Bin 2103 -> 1627 bytes ...liveryRepository$DeliveryStatusStats.class | Bin 0 -> 370 bytes .../repository/DeliveryRepository.class | Bin 2139 -> 1514 bytes .../example/repository/MapRepository.class | Bin 2827 -> 0 bytes .../OrderRepository$OrderMonthlyStats.class | Bin 0 -> 354 bytes .../OrderRepository$OrderStatusStats.class | Bin 0 -> 347 bytes .../example/repository/OrderRepository.class | Bin 2853 -> 2012 bytes .../CustomerService$CustomerOrderStats.class | Bin 0 -> 1826 bytes .../com/example/service/CustomerService.class | Bin 4364 -> 6669 bytes .../DeliveryService$DeliveryStatusStats.class | Bin 0 -> 1826 bytes .../com/example/service/DeliveryService.class | Bin 4523 -> 6205 bytes .../OrderService$OrderMonthlyStats.class | Bin 0 -> 1811 bytes .../OrderService$OrderStatusStats.class | Bin 0 -> 1771 bytes .../com/example/service/OrderService.class | Bin 5345 -> 9428 bytes .../CustomerServiceIntegrationTest.class | Bin 5123 -> 0 bytes .../example/service/CustomerServiceTest.class | Bin 0 -> 3292 bytes .../DeliveryServiceIntegrationTest.class | Bin 5831 -> 0 bytes .../example/service/DeliveryServiceTest.class | Bin 0 -> 5281 bytes .../service/OrderServiceIntegrationTest.class | Bin 7882 -> 0 bytes .../example/service/OrderServiceTest.class | Bin 0 -> 7520 bytes ....example.service.CustomerServiceTest.html} | 54 +---- ....example.service.DeliveryServiceTest.html} | 35 +-- ...com.example.service.OrderServiceTest.html} | 51 ++-- build/reports/tests/test/index.html | 36 +-- .../test/packages/com.example.service.html | 34 +-- build/resources/main/application.properties | 23 +- build/resources/main/data.sql | 14 ++ ...service.CustomerServiceIntegrationTest.xml | 30 --- ...om.example.service.CustomerServiceTest.xml | 13 + ...service.DeliveryServiceIntegrationTest.xml | 13 - ...om.example.service.DeliveryServiceTest.xml | 12 + ...le.service.OrderServiceIntegrationTest.xml | 14 -- ...T-com.example.service.OrderServiceTest.xml | 13 + build/test-results/test/binary/output.bin | Bin 3636 -> 848 bytes build/test-results/test/binary/output.bin.idx | Bin 139 -> 36 bytes build/test-results/test/binary/results.bin | Bin 1137 -> 1735 bytes .../stash-dir/BaseEntity.class.uniqueId24 | Bin 0 -> 1745 bytes .../stash-dir/BaseEntity.class.uniqueId8 | Bin 1240 -> 0 bytes .../stash-dir/Customer.class.uniqueId15 | Bin 1703 -> 0 bytes .../stash-dir/Customer.class.uniqueId22 | Bin 0 -> 2363 bytes .../CustomerController.class.uniqueId0 | Bin 4842 -> 0 bytes .../CustomerController.class.uniqueId11 | Bin 0 -> 5038 bytes ...queId7 => CustomerMapper.class.uniqueId15} | Bin 1427 -> 1470 bytes ...sitory$CustomerOrderStats.class.uniqueId28 | Bin 0 -> 371 bytes .../CustomerRepository.class.uniqueId26 | Bin 0 -> 1627 bytes .../CustomerRepository.class.uniqueId6 | Bin 2103 -> 0 bytes .../stash-dir/CustomerRq.class.uniqueId1 | Bin 0 -> 1269 bytes .../stash-dir/CustomerRs.class.uniqueId25 | Bin 0 -> 1497 bytes ...ervice$CustomerOrderStats.class.uniqueId19 | Bin 0 -> 1826 bytes .../stash-dir/CustomerService.class.uniqueId0 | Bin 0 -> 6669 bytes .../stash-dir/CustomerService.class.uniqueId2 | Bin 4364 -> 0 bytes .../stash-dir/Delivery.class.uniqueId20 | Bin 0 -> 2983 bytes .../stash-dir/Delivery.class.uniqueId9 | Bin 1455 -> 0 bytes .../DeliveryController.class.uniqueId12 | Bin 4849 -> 0 bytes .../DeliveryController.class.uniqueId4 | Bin 0 -> 5620 bytes .../stash-dir/DeliveryMapper.class.uniqueId3 | Bin 1619 -> 1670 bytes ...itory$DeliveryStatusStats.class.uniqueId21 | Bin 0 -> 370 bytes .../DeliveryRepository.class.uniqueId10 | Bin 2139 -> 0 bytes .../DeliveryRepository.class.uniqueId16 | Bin 0 -> 1514 bytes .../stash-dir/DeliveryRq.class.uniqueId14 | Bin 0 -> 1893 bytes .../stash-dir/DeliveryRs.class.uniqueId10 | Bin 0 -> 1953 bytes ...rvice$DeliveryStatusStats.class.uniqueId27 | Bin 0 -> 1826 bytes .../DeliveryService.class.uniqueId13 | Bin 4523 -> 0 bytes .../DeliveryService.class.uniqueId23 | Bin 0 -> 6205 bytes .../stash-dir/MapRepository.class.uniqueId1 | Bin 2867 -> 0 bytes .../stash-dir/Order.class.uniqueId5 | Bin 1400 -> 0 bytes .../stash-dir/Order.class.uniqueId8 | Bin 0 -> 3535 bytes .../OrderController.class.uniqueId17 | Bin 0 -> 6698 bytes .../stash-dir/OrderController.class.uniqueId4 | Bin 5830 -> 0 bytes .../stash-dir/OrderMapper.class.uniqueId11 | Bin 1307 -> 0 bytes .../stash-dir/OrderMapper.class.uniqueId2 | Bin 0 -> 2429 bytes ...ository$OrderMonthlyStats.class.uniqueId18 | Bin 0 -> 354 bytes ...epository$OrderStatusStats.class.uniqueId7 | Bin 0 -> 347 bytes .../OrderRepository.class.uniqueId12 | Bin 0 -> 2012 bytes .../OrderRepository.class.uniqueId16 | Bin 2853 -> 0 bytes .../stash-dir/OrderRq.class.uniqueId6 | Bin 0 -> 1574 bytes .../stash-dir/OrderRs.class.uniqueId13 | Bin 0 -> 1900 bytes ...rService$OrderMonthlyStats.class.uniqueId5 | Bin 0 -> 1811 bytes ...rService$OrderStatusStats.class.uniqueId29 | Bin 0 -> 1771 bytes .../stash-dir/OrderService.class.uniqueId14 | Bin 5345 -> 0 bytes .../stash-dir/OrderService.class.uniqueId9 | Bin 0 -> 9428 bytes .../compileJava/previous-compilation-data.bin | Bin 37277 -> 46665 bytes .../CustomerServiceTest.class.uniqueId1 | Bin 0 -> 3292 bytes .../DeliveryServiceTest.class.uniqueId2 | Bin 0 -> 5281 bytes .../OrderServiceTest.class.uniqueId0 | Bin 0 -> 7520 bytes .../previous-compilation-data.bin | Bin 26144 -> 33948 bytes front/package-lock.json | 8 +- front/package.json | 2 +- front/src/App.jsx | 2 +- front/src/components/DeliveryForm.jsx | 19 +- front/src/components/DeliveryItem.jsx | 8 +- front/src/components/DeliveryList.jsx | 3 + front/src/components/OrderFilter.jsx | 8 +- front/src/components/OrderList.jsx | 16 +- front/src/hooks/useDeliveries.js | 2 + .../controller/CustomerController.java | 21 +- .../controller/DeliveryController.java | 19 +- .../example/controller/OrderController.java | 20 +- src/main/java/com/example/dto/CustomerRq.java | 2 +- src/main/java/com/example/dto/CustomerRs.java | 6 +- src/main/java/com/example/dto/DeliveryRq.java | 27 ++- src/main/java/com/example/dto/DeliveryRs.java | 12 +- src/main/java/com/example/dto/OrderRq.java | 31 +-- src/main/java/com/example/dto/OrderRs.java | 6 +- .../java/com/example/entity/BaseEntity.java | 31 ++- .../java/com/example/entity/Customer.java | 24 +- .../java/com/example/entity/Delivery.java | 52 +++- src/main/java/com/example/entity/Order.java | 79 +++++- .../com/example/mapper/DeliveryMapper.java | 4 +- .../java/com/example/mapper/OrderMapper.java | 27 ++- .../example/repository/CommonRepository.java | 12 - .../repository/CustomerRepository.java | 29 ++- .../repository/DeliveryRepository.java | 27 ++- .../com/example/repository/MapRepository.java | 47 ---- .../example/repository/OrderRepository.java | 50 ++-- .../com/example/service/CustomerService.java | 64 +++-- .../com/example/service/DeliveryService.java | 59 +++-- .../com/example/service/OrderService.java | 106 +++++--- src/main/resources/application.properties | 23 +- src/main/resources/data.sql | 14 ++ .../CustomerServiceIntegrationTest.java | 116 --------- .../example/service/CustomerServiceTest.java | 71 ++++++ .../DeliveryServiceIntegrationTest.java | 143 ----------- .../example/service/DeliveryServiceTest.java | 141 +++++++++++ .../service/OrderServiceIntegrationTest.java | 226 ------------------ .../com/example/service/OrderServiceTest.java | 185 ++++++++++++++ 155 files changed, 1162 insertions(+), 927 deletions(-) delete mode 100644 build/classes/java/main/com/example/repository/CommonRepository.class create mode 100644 build/classes/java/main/com/example/repository/CustomerRepository$CustomerOrderStats.class create mode 100644 build/classes/java/main/com/example/repository/DeliveryRepository$DeliveryStatusStats.class delete mode 100644 build/classes/java/main/com/example/repository/MapRepository.class create mode 100644 build/classes/java/main/com/example/repository/OrderRepository$OrderMonthlyStats.class create mode 100644 build/classes/java/main/com/example/repository/OrderRepository$OrderStatusStats.class create mode 100644 build/classes/java/main/com/example/service/CustomerService$CustomerOrderStats.class create mode 100644 build/classes/java/main/com/example/service/DeliveryService$DeliveryStatusStats.class create mode 100644 build/classes/java/main/com/example/service/OrderService$OrderMonthlyStats.class create mode 100644 build/classes/java/main/com/example/service/OrderService$OrderStatusStats.class delete mode 100644 build/classes/java/test/com/example/service/CustomerServiceIntegrationTest.class create mode 100644 build/classes/java/test/com/example/service/CustomerServiceTest.class delete mode 100644 build/classes/java/test/com/example/service/DeliveryServiceIntegrationTest.class create mode 100644 build/classes/java/test/com/example/service/DeliveryServiceTest.class delete mode 100644 build/classes/java/test/com/example/service/OrderServiceIntegrationTest.class create mode 100644 build/classes/java/test/com/example/service/OrderServiceTest.class rename build/reports/tests/test/classes/{com.example.service.CustomerServiceIntegrationTest.html => com.example.service.CustomerServiceTest.html} (52%) rename build/reports/tests/test/classes/{com.example.service.OrderServiceIntegrationTest.html => com.example.service.DeliveryServiceTest.html} (60%) rename build/reports/tests/test/classes/{com.example.service.DeliveryServiceIntegrationTest.html => com.example.service.OrderServiceTest.html} (60%) create mode 100644 build/resources/main/data.sql delete mode 100644 build/test-results/test/TEST-com.example.service.CustomerServiceIntegrationTest.xml create mode 100644 build/test-results/test/TEST-com.example.service.CustomerServiceTest.xml delete mode 100644 build/test-results/test/TEST-com.example.service.DeliveryServiceIntegrationTest.xml create mode 100644 build/test-results/test/TEST-com.example.service.DeliveryServiceTest.xml delete mode 100644 build/test-results/test/TEST-com.example.service.OrderServiceIntegrationTest.xml create mode 100644 build/test-results/test/TEST-com.example.service.OrderServiceTest.xml create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/BaseEntity.class.uniqueId24 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/BaseEntity.class.uniqueId8 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId15 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId22 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerController.class.uniqueId0 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerController.class.uniqueId11 rename build/tmp/compileJava/compileTransaction/stash-dir/{CustomerMapper.class.uniqueId7 => CustomerMapper.class.uniqueId15} (52%) create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository$CustomerOrderStats.class.uniqueId28 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId26 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId6 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerRq.class.uniqueId1 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerRs.class.uniqueId25 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerService$CustomerOrderStats.class.uniqueId19 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId0 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId2 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId20 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId9 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryController.class.uniqueId12 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryController.class.uniqueId4 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository$DeliveryStatusStats.class.uniqueId21 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId10 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId16 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRq.class.uniqueId14 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRs.class.uniqueId10 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService$DeliveryStatusStats.class.uniqueId27 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId13 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId23 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/MapRepository.class.uniqueId1 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Order.class.uniqueId5 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Order.class.uniqueId8 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId17 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId4 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderMapper.class.uniqueId11 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderMapper.class.uniqueId2 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderMonthlyStats.class.uniqueId18 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderStatusStats.class.uniqueId7 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId12 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId16 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRq.class.uniqueId6 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderRs.class.uniqueId13 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderMonthlyStats.class.uniqueId5 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderStatusStats.class.uniqueId29 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderService.class.uniqueId14 create mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/OrderService.class.uniqueId9 create mode 100644 build/tmp/compileTestJava/compileTransaction/stash-dir/CustomerServiceTest.class.uniqueId1 create mode 100644 build/tmp/compileTestJava/compileTransaction/stash-dir/DeliveryServiceTest.class.uniqueId2 create mode 100644 build/tmp/compileTestJava/compileTransaction/stash-dir/OrderServiceTest.class.uniqueId0 delete mode 100644 src/main/java/com/example/repository/CommonRepository.java delete mode 100644 src/main/java/com/example/repository/MapRepository.java create mode 100644 src/main/resources/data.sql delete mode 100644 src/test/java/com/example/service/CustomerServiceIntegrationTest.java create mode 100644 src/test/java/com/example/service/CustomerServiceTest.java delete mode 100644 src/test/java/com/example/service/DeliveryServiceIntegrationTest.java create mode 100644 src/test/java/com/example/service/DeliveryServiceTest.java delete mode 100644 src/test/java/com/example/service/OrderServiceIntegrationTest.java create mode 100644 src/test/java/com/example/service/OrderServiceTest.java diff --git a/.gradle/8.14.3/checksums/checksums.lock b/.gradle/8.14.3/checksums/checksums.lock index d7b9710e7745a4b811babe2ce46cb121240a0841..51525037c88e07f38b60df7f9f1c01c3333f2564 100644 GIT binary patch literal 17 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 A00000 delta 69 zcmZ2~p7H!7#tkMCf~@U|B{(Swf>0D@*3!~g&Q diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index 1c64e5025f3101dcee3a0668b4261d789c00bd67..2cd76dfecc126ad2c86ce9bee5fe2da0726f4197 100644 GIT binary patch delta 51202 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 delta 3126 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 delta 298 zcmWO0y-NaN0Dy6fT!O}U-!s21J@rn{dk@l4XzC7XX($)NrLi{4hQ=HtdQfPHrmQ7M z#I}Zp3;F{bg9y&8p`mCAy5ZrsKBKQ#@EUtqm9YzI(&Jtp)6f(>O%O)55*ovVV4CO> zEK9zljO00CQnHlt=%nu0OiTJ{m!Gu2$Y^Y5943*oOq<=T;3lhx>yn!8GtdQrt~g!s z2%|bV$y3g!o_FZyHD2=T7=};J5KIikpW)FeXq**p*(+)cibohFmxGexu@pT<+NR5) zDH)m$pQc9L5}a6yz>0pYE>~rjS=pgg@t9T=HCxfQC2zJ*qbk_1wh5~e+u531d>-k) XVx*c2<2CPkK7RSJ)0~dOjd$@6h=y<* diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index d8638a1de6380f1de4861daf358c84305699fc75..477157d449d3e8e94536684f89613e60dbafaabb 100644 GIT binary patch literal 17 VcmZRcDKxn_M{@N=1~A|>0{|^G1N8s^ literal 17 VcmZRcDKxn_M{@N=1~6b}0st)i1HS+O diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index e843447dbe63874d7d9d2a54949d172d8bab8917..2fb84f609b9c7cdca53967dfbd08ef4304acfbcc 100644 GIT binary patch delta 5742 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 delta 293 zcmXYny-UMT97WTilSNc0@An#;CTWu9OY;gkW)KwGA*-Wgad2@oHE8maCCEYQ*o*K5HB3gaPC!EdCDvK4y_L_@5ZnG{`-USxBfjcx`xdOBT30Q zzIlp4gW;yZ@hn|cCn!{oPnE&mls`!+sW(%+H3fDx!c^=Y$MQqD%%Wli=M93VDnRAAuL%8V3kMxHm zb_GT*$D_-zbO~D?A@c+l-UP=!q44`~0>Wt!p$t+SgdBsAFbkvF&;Jx<;xNTrub0gJ#~`^1s`&Eczfu_vLJ6n- z+i$;d7b55@4O1){Vz97o`b}S`_)M6%lp#0Aij+P#sJQ*)SZM_T>A%K8F{1BRLIqb( zE(HoIqy~PSAa-~)M9{B!a<8<4gGz94{27L0GEkN6Fk{t^iYwI@Zdwc#KMxbva4_Cm z!I$L%72i8~skDWFQHAxJ9X>xdLIpohzAD`yV4Z(T-@~P3K2$JyvagJVfc^8N{qFzM zUqA%?d?(ie1^r4VES+$27Sv(B4=1mcvE;9{x{-C#v=E}u=jr6TG8qvmi_fg(x4oMR z)y)cXRLYS@pO=LN*$&HFX#5WoQ@NahXuwa>d-&20_2ameR4W1s84|uC=Ht_aj1OOs8 BJ0<`C delta 111 zcmX>-m+|Ke#tkMCj5d=^B@8ClN_b4Z3#3&g4JNlr9+=!Kyyd zt+whoPX9m$jYS46zN+KH$&=5%^r17I{((-X-#$qWgz&J>UTf`j`PR2q@>lI|b^4qC zM#lhbz=Owng>WwnhC3oBBcaYnS9>TNOD_~nntNlRQC=w7;+{6i_O4{0PKOJhI?x2K z!1VTL@{{gFGIl%~Z;2m?#@mvSWI`Yq3=h7jPG2wW74F7KIp&uyuk{qv?`m%p*k9;I zoBUNX56Qn>dPz7blLJZ7)+GOT;br?=kih4x%Jnbcz5nQ{X)!TW>yr?3sfIYe25N?vZ-=b1@W0{Y~VwoqQFp%ptRxaq!&cN<-HC$NXt zXV^=qD*Hh`DmZ?Xeep1+$$vbvQ`!7p!Un40L=8Ns#eB-+4fw4F{Md*6%$jRpAA=MC z4WFC!eP(@u0|y`y_#%(vOMFEqn`-VL1%YK)o&zOYJwB7ZY=?^{RJB`G?Kp(Uc-2G9 zk?;0v%DHY2;|LWy#0*|h9#ynL5Ry{9;Su;4?c`Fi(Lv7DzykG8ZKPw#Fjf@tv6Mq? zKqcY&vD8Es$i`U60y#dI$Hb_a%-A)WK|`LMZ!LC?62v5SIxO6rYfT<_rAAN1)svJDEkH^qS@8k4m)W4W1nr-|E6%De>f*LD^dSZN# zsq7^Ae@05CSl&&Omv_C1uy}bjd}o#1WtEKQr<&kqCQTZ;O}8b~Pbz9onLBnGXZU#5 ziaUq%?D9ea7m-Tf5_Vc)?l+{G`rk6Hf% Dcs?gj delta 1395 zcmaiz*-leY6o&tO3Y61gp~$Qt5YSp{h=4J%;1mW21{FjFrvp?h6k2Et;#6@S5Qn2; z;@L{Y!lVF-r==-fe8`OQng=WqcQTM^n>_%e~C>lv$&pK`r7V?bN@^*6VKd zg|joYK>w;fk5}90h2yFXmAICL?YJ(`s4pn_`a+gF{iZ;xO9JYy6*Z3AHr&BoD`vBB z4|8$fidvDT3smblj#5Xssx25CiH59rB2Xq%dVO}OJp%&iXo7-f{aE&@rWW3%0~UT4 zA`L}QQH)kb1*`yU*o{53(z7Fry?g1W3kG1Y54mh@)<0$!_sT(XI8bH`ki|e|Vn7>x z1?}jd&8F8$yPp*Y!Z=9Ng>F(cGkKARlBUA_4%Q9tv9jHxdvZ!*7RVpSB_mKp%4+&+ zQBEsq%gvr7Z3PaYhjUeKbQniC^C+t%l9}mcCb7vO9+-4}23?^+CvdC}B8=k+${0@I zBrC0gGfvSFs6%~%xsfeWEj7Ws=?w$L05%ozERj@ALaNZv&p`?--f;>w>BoK-@6~h7^{P3*AEnlRx1};cJrYm>No*XNGE<@{J3OG zLzv$RB1V&kagTXR!Y6#jOaCge0tNCQnfGNrAcB`s!5opHuY>kzA4O!0z(SkT5cq=6c2Pg1Q| z(u;~pz0~bp0a3i*Q#Bo?R;G+^jt_G30%vi@|f#Z+2yMDW~=&s@%2~QP57Xk(8ff++*G@H;io`uOO-k!y)2_Xq^p|E zHLDB6jC01S@k3#*aLQON%ogTb3p0gTW0AjQ^R#TN6y{ouC1bVdFur5_N~>|jShYg= zdd65ZE(`dJ5^qo%rxJQuN&655m3til5mlPXZM9pY{*a!Cj}MK6lrMBbty2QqjWf*j zy@Ia4;tR80Q1zB{L28`vQr%wBZEPoizyl}piJeXs^q&SlYf*j9q*}pr@>+v)#SZg7Rn083h8b?o zsA}*f^sVjhjvLPL^A_ZO3-Uy{wJ*>#g+1mNT|Y&+;u!5*3$yD6V|0>3XpPZH@-5Eu zbQSEGGWP7Xa#gi<%yG5hMfGL`T{OJJoG+Un!702#=c`r$ui-R9=XJb}H*~y-x9C;h o)(4bp0dM0yoTH_kIXbw0>Tn^-{XF;2_z!Y{{~KT6D_lhLzvF^;LI3~& delta 1207 zcmaJq1@YAD6|w%P)IPPkf1<9B590k18pO1ncn9i0r_3?$X2I6>7GEXkHd20w6oNC-@pTm z*)Zn<4MF)WZEbZ8MRvl%zZX_y zK}R-f8D$ay7}$ZGw92!?!P;H)DVCi^U^miP8k7N7w%JHE2lC7Y3Jj#g8r0F(um^i- zQ|Z;y?jvG<7zbz?aFDEma>`XEYUF2^cSLd6VDidOaL7j^4iT-B=V2USnvpy)|6 zPh$KUnTXD8F=u+snF2>!Ai_8npM4yy1lj~!w9yeLM};DS5g@=4rGf5$2V3zBHosw@ zK?xSUXURW8=?RiLLO8)rF(M(t+DNV?O#rHU~!%OZR})4n12m}W>E>_^DG)N-@q^~Fn2N0$$_%B` zqHVTYW`?3LprUP7R5ttr_4Hf6^$+w^@42%uFxt}(cg{WE{l4?Q?|0sF@7ydtTWT5o zdw2vu1#b0P{>dmPtlrVEr@`rNXlrp+x3{&F&6XWTTYri8L!{@&Jna2_O4dRR_h6BL zwym|TdFB2(Z-ckXBQR6`W}1;zWxSYgg8kS>) zJQr6LzfvGyR#@^a7UW}7gjg5?{d0& zyL0+aC3FdE*+f{GYb;GkozQ>TWNf$A$D}!=)%1(Cd{X>R(@9xpoFacUt?chMFECg) zPD+@ot(K`;vUO8T{JgbhQY_c#klD#Q#Tr?VnA_W9^UaJ=T(+!CAjRoX>YTfRtq@op zI2{-XTp2q&)*bMV9U41k4_pmg9y>U8oPlc$_t-f(6zJpS*YEs+;jzQ^z+j*+FwAR^ zyFcKk0rU%L9s(_`g zy{ogyRoUuxiT)GG2ZX6S6@GzLg|fqvDV-xS30Hxu#5f*ILp=4@&(8!l|)jCDwY#uZz5pCC8^C)<(E(ni^l zmc2?Xl*kw`U0*;Y1E$adt-Lp22X=C_^3Kh17c<&CXy>pS9pu_5Z>5!pCMnW0eTsu! z=am=XkcUoqm~AFcFS@wQ9%d<^U}P^NA%2~F5X9W4V`l1@0{gc>c<@9R`$;^-M5Evm zPxD6L8I&p_@B!s4Q5`cEU4n7W0Ot2`5^Pvdrz5IS<_JkMYZb{55iS%Wa^N;Z4u**w znnc8e!&s!ZWO~M3zVY6c+yV0lo*leVs6J0M$5R=8%E!r}plx0$YlvFtBoi7F%87jq`xi3mF#5*DTF-O0A(_my0fElYe% zSEe&5{sY*eXht8&`a8aQ-ituGBarWh4fFv+{78pUCW1T~1)}hQt#?HE@HQwPg;74H zi_YkTKhe`1oPWv%&+6}_&v1^;DNb@ocJBS+$ l714}^?D3b0X8t9~$5$M`=HdI6@9~=)zvuV^e#Fnn{uh+J7%%_; delta 1850 zcmaJ?Ygd$26n@UkFz>wY41*)W01`5TC@2OCsg=OQMJ|~l8j0w1nNco+MC1&H6-`=n zQOoF*X4(C27pXCVR;y30KJ=y4FX%7S>Ql>B^_+Juz$kqf_SyU0m*?4gpTp(4pSBo3 z|MUHi09vpxWBe;Bp6H2&qZ1JWZftX*9u0EZ z+GY>9a3`ANFV;?5i-2GLZukuYer$K44eheSw!_hkP8aUN4tc@0!Mzi^G<3PJ8%+XR z>3Fl4_A+d$A+qVqQ{2Eh8m>D;g#F7*4E$a z!anrUyMJJGKzZlg#JlpK!qKPjwL7sBl>+4zGbjD=zp^HTCy*H-r?fixo1Q1HX(OJ# z8@>h{*F_V%Qzo0-Zdu}3B`5Wv`0d74%bMOy=M>cQM)fTTKK%j*R`%K~&pGXKefD8b zcczmJIBu2KvWMf7IcJ5|xC);Mw8yFWMZ1-{hql?zue8xMJEh3#9?l)rks z@`}f8*YKS{NmAA1L~gOu0f8(Wgatu)DR*t#eVo1Zsc01r~C zlM^n+hIq~rR6r$+)eH^F>$!zyB0FtBiJ3q-1CC^ZLp)n>82ywvJPl9|(qkxsBNW3J zA*!J4TT>fTh*lE|u%2kjdES6hN`F(nvZ9ed?Hbj(E*}VgU~l!g|<01hudbUS)iJf08+aGkg26Wrs%#h zkS9|>Vwphd@f6Dh8T|~4T4OvEn@HwxM_1K68fUxa(ONZ!js@Ip!7SSaWOJdKIjF@! zZsR!WX>H)_8%?~MIAEP^J&99HoWq!>%@WL?Ze}s2@hmew$DHK4Tf>p&)HJ7QOAvZK zy;CpHHb{T&)M=cdqC@0UoaIl=)G1g>DKGLT_~5*hs(q_5sgX^$T<0y0wQgC? z%g6VmnU0EA5ktWz&OkeI(E%T&ADt-UOQ#l9t&G8?JjbQ9(wg9>u31f*Urlm(l}#~S zTwXIWhH-`_$sf{KI>d0@Vs7#x|CiI7HA7Mv+x$wp4;)OY4;~90)ow5C#=gW2q%}gj z0vhurC*2b$z6kd`_AlUoz$b9d!?%Eqg5w4~RXYsE0Nw2P9+Uq6-BXEI>8*G%>TeW? zPK~V#QD1gTUyG%QoxhRTh2@)S!|RN<;G!8*#UZ`Hm^aO2N76o&tCvoxvGtWBFV>|2sT&2mQ(QWZc#3I)-UdnX>Hu421#9K>UR1VZA1 z2jHO)=Srlb|vSL5* z$46XY+e8s1fs}81QlPRDa~g$i991z<<*2muYTuEoCV%afTml;N2@oG1>?AK0PG=lEkPI(O+Z zt^WF}9uebMMsMl5m3C+4GU~$QoX(xqcGA}wkV5ZdbRIY#?2yEWWJt}jRP97bQ~R%8 zEDi-w#d*NaYR%ZsRX3@`Yu1gn6dZ3&`r2D+w|`Y#qn?0Cc`L!KxRWN98*=GSOOZKw z<(NMWX5mP_aarf$a!L+)I&h2L)}VPz(@JwiJA(&ASsDRl>EV^7=OnuYk`)JY79cImuI7!^3aB;HfH}13c8|Q%myHwLFh-sMDvGv{H)Jk2#c{0}U6nu_NMtp=X{10+)0m;e9( literal 1435 zcmZ{jZEq4m5Xb*}<+(?pJQSh$P#=M6&)3$NG^mLQ*2Y%eFWiP+!*R`V7(bRK8WUgm z0sK(LnT0~VE^lUbX7@k)+nKvRe}DZ3aD?YMSlCD-VIzr@K=DF;md;pCM$U)9g&IZz zsh8fwi(UzAwA%eFGRUTpv#|+VpfL=5M}3k0*j8|Pd$FGqVvE#ks-Z3QXyTKri#ZD(Tc?LRfckJxETT& zN-mZ*WxK0}>|P-lS|VVR?%Ltz0?2Tdxw!PFRp(fIEzF$;vv8>1dfdFiYR(5dU+mGq zEc&97Wa-PGmBj+6| diff --git a/build/classes/java/main/com/example/dto/DeliveryRq.class b/build/classes/java/main/com/example/dto/DeliveryRq.class index 38e8e397889e81c4662533c48c89d2084e6b4ecf..2aeb1b742349710b04be772e0e96273a36f2306f 100644 GIT binary patch literal 1893 zcmbW1OHUI~6vxjkrL|BfZ>0hjK`7-hnz&M9q7XMC8X)Y4_67#p8JxK#vO`_CF~Ox< z{REKEXb}7Wu4cZF@qea;(#~|_qW9i8_dI^*ar@`**>56xMh`kDLTz!1CaIlbf_irJ zeO)W+=9cz)b4TWtpx6_`G}Kc;ZP}TP1l^!SoH~-!Nl8KJyj9ZVJH515lv+Vq+LA09 z`_evGeJiM2*?NB0Ft=99rA=uI>RYaRUsE=29<#shB&FC{XF)p3Fm+{ECd+%1)W`Ce zqjXhvSTvBNK^7(RWk*>hX|L!dDQI}LY$~H9Hw?$vEXrr5X~6_;96>V(x~tnt*Y@?I zQSilD9#^0t=*sAQ46=@?l(k1B<~{|hK8PV zzq;q_;S4Z8*&&+*l)cZKgrMl6RX}d3Wy6%!o~-LA7dOVr>%|S-Hu$?HjH+z|^&44k z-D8yOWj5H<|C7vYVEkT5wQUvN=r;PQq>cE!TT-nz4bniCyLvgOwNZkq6I2}x;p0f% zaJy8WHwa+dAV@%C&7V9$30z*DQ;;tkz&=NzhIFZaFkeX$ZPV^iy3F;a3vWy&crO4K2K!pzcUecLZ8^QbFC(pzbJj zfDiu@SjPaUVHeojb3aI&;1HoZSoxZ$pE6jJRRyGc7hh~V0WCH@#NLiQ&BnRe3dM7C z73#{(SEwg99Ia4)-D4U)37An7DuIf0(=GTP_Un|v&BLmvS`_&7%gPk#TG9B#C28|z zoN$yTaqf*mm7qkp<`4{dkEXCTW_U{RV_aU(a5OZ-Y0B0ze1x6b9P_iQXH%`um~TB) z)wm*$)ySEx9e;^F&rB#!S2Is0lqVO?)78u~-hzjRPWZI~57$Z1Y$#7pGtWdQ&s;c9 wPczSC3m)#`6%Y4J(0nLQe>2ZiD9=JT&$a2R_G`KY56{vSPj!AYP(|qeKOH-T)c^nh literal 1798 zcma)+%TgLa6oyYDiXeh0-cS?G74b4zxQeM%8Lez$E~S?H5xQ^`X3R`u#hpnOS(;Z! zo=rB}e!F2cObNTx8-~9e_c}+ws^dw3l>WWY}PTkZaD3iC! zn*5-b4@y!iC`((DCF4-qM;q@2C6uk__YJf7rc&OKwxGfFJ^fJEO1fFpHkFN?WzN?d zrzj`uD@aEfrmhUjWP4wn;%x76l&&fcn-XzKvZ*&;agFAIv4rQ_&DDJbiHuN}Kp_j203a+Q^;&{aQ;MFd*M8LlhpHo=yZsvH5S_2m5M6ERYy>TB}z9 z0PRTsV`1#rrd6@?@}oq!i!OS|u6yYD2t@QhF{hT2nf2j9C`X&42@?%X+vQ%piMjc<=o|vC!G>|73%oFqTjCJ7QD{b<`J)XHho_;@1CXi=7 zn5W;*Gtq&EWz*zIdOY~!h3U3_E@;4?aVn4}O$*Qj2Onc(0c3Ir_B526uTmtpP^DOI zJY1z4j2Tc6qQcN;6nPU+)DRRo4n49;m+G0CI?FV4hU|?8#WU`07gzKiL)cScD(r>w O&2zWwCtSoVMA~1QqF(9% diff --git a/build/classes/java/main/com/example/dto/DeliveryRs.class b/build/classes/java/main/com/example/dto/DeliveryRs.class index 021afeac02e90137f2ff34112ced28092d86b343..db5b84bcde42502fa0c052ae2cd3f8266ed9c1fb 100644 GIT binary patch literal 1953 zcmZ{kTTc@~6vxjL+FDpxXrWN3+`P4*toIA334xfHR5XITFT0bn*zS_;l<2q8L}TKE zAHWY~{Li#>+sW+9oSk!<-<)%1|Ni^^hluv*)dXc|EKlPWWhuvK=G?t>ot7Imo%g5b z+!Ks)FM}`;uNjTi>L&%dMuj|0STso%qa`nDJN%2=zG!jB7m;(oTfrrdzkcj6$^4U6^Fc!L=21aFIrTR{*ylMh#+)D5QQ?& zyhUZH&vk?=x*e%nw5TFgme=iwsLkU;x6P$t*`g|4XH@WF?h5Yj;cAuMaUy7QrxAH> z>j0Kx?9{2N7Okm>?uCC9F}@%9oRQrKLf(Tuc28T-6jl6*8wYaVSB{Ib0EMVF(#y2V zDBI-XElO3a)rYRHiUnh*XDropTm1ypeaFRF4Zadwrv8*PPzDceCyt_S?D02&?4g}Z@3x#;TF2aE@J{krG4J@w$iY<-1F0ki zP)SUkk{B{2F*=Yop@o#gx{jR#$sn_vzleQTZW~yo8A`f=)#`uWq+8fAx=nYmjt2jr z{5Kdglmy$x;2PE8C4+Y$OAEX9ytR8o|58uVC0$8c@~X4 z56wJtI!`5qN6zAar>uA$8F?0To@FD?V>8c!&Qnd{k#AzaQ&Bum=qXhCJTK`yD@LAY y^xQN*OFGYL3Xgo71D>kld12&P(RtR5JUeEd6`f}zg-8A)20UwuXBTURUj7FugB>~m literal 1879 zcmZ{k*-jfV6o!ujNeB!i1dpO62UzyE&!A);;C9H$hGWNFl)G-VhSPWd@^TfB4ZzCSt@ zo@A7H6?6jmn$bwTahRhq%4KQXp$T#r&3j?n6<>J!tR-AuhVHIt1?M9A`mxI>75I#b z&3MOs83mo=Ew#s#LwU8ql#ICd8Qyoj_K}EGXxgEo3QhQ;D}xS~LD*6LS%*r>pXo|2 zdtK$a;n19Njd{JU4BP$sd55Z0W0dnE!KLuGafeEuLI!Q&HbalMb`d$iO2aHVw4^I~ zXZ}US=uYShM)_vY5q-7;e$;}esOt}T6sYyUIVw*A+_=_E?#C9R^s$g{(39DE<9b&R z?)Jl_`t@kz5O4EV$dl0jz$4xkQbag#8ap0b=^%XA#`H}gZ#Qly`i`V4jvO-fbz{*v z1TW?j@b3(|i#I_eUO6fjH@SLoElZmjIjS^Ht_?0}$yIk%TYrjQLls|Ij_-%P$P;^k zdXRjqxecW?T7fcBP$0du<5m5 z#J*#a!V#pyaMCK~PCtQe(k-kQ-KIMjmoblve^B-t9G8pp*5bQVN0utygjF}mtgZi~ zta)@nSC{)4gQFFex-+8&>e6^I7)EPWo=KCZXysYA^GupNGYLGZ_d}k%=DBC(DVRJZ zE6;s9Pr>9VC-5i@40(#0XT!=fWAe;dd0acsjLB0;;89u}@{}~s11nG2pYSVMYc3LS$P&ro)s(4 Zb34z1$+Mckqy7;?o+Zum0%M9^{s(7=1v>x$ diff --git a/build/classes/java/main/com/example/dto/OrderRq.class b/build/classes/java/main/com/example/dto/OrderRq.class index 8e881982592e862209a5cc88b0c53ad472ecf077..ec48e85a66bf61b69fdc15bebfa49e23f5ab2ae0 100644 GIT binary patch literal 1574 zcmaJ>%TC)s6upy#qzMV6B!q@S34N0A@T!}(s)Rt5kW#1sWpCn9Fm-HdPf%GxKcL^x zKY)q|L{&bZE9Zx*p0Q2d>4KTe%(>^Dd+s%V{@&gZ(K@XqC`92HMUpf|QAX(_^+Z(+ z)vPHy2S>ar7)9UdrY_zy3NIBaae6@U7$uT4PDw^HRjaP>uWJ3+;EEab$;r8j4Ca)hRX^JvP>j+ge97a=J!F$5i z5zZ*T+c1S*=M~-24-CF;nik-?Wg=h+0iRV{sLF|I=$dz}RPiKiRX2sBY+GWxVHlu^ z)w$!SHO}be)@H%Ib$_`xZqxnUI(IJ$?wxzt`tDx47dSTYga=0Ry_xqs#w=1SYa!X^=Nr)=j?Ms2^~9Uq!*v7OScn71h?|Ik=37 zLmdv}%Om=Nl3z=E?tAPt<3H!X?_vc#{K&7Umvd-_9^oQIEJK~EkeuN`Y<>`%2MU8dh@Bn8&O!^5A0*bt zNUC6G*vCrO#4hn8L~~f>Gf|r6u_k>0J)s4hWN-l}8EjyWV9(0n(sGkxrIjY7N~=vu zcerwhAP9^=VjQJUpvDa4JnoVoA8>=oGf3vn2Ib3NvbZp8ghycj2v3qwig`-Uu=ZAR zMX?J!c2|-gTFG;I5mfR9yKGU^tD>Xb_hHtH&iRP8)@Yzr>KbF7E`01m^`!ds%njA^ zYPg6;2tBfIZ9RU!R=mcn F{sW{eJR$%9 literal 1517 zcmZ`(-A)rx5T4VPmX<9PD22+uKUfxZuN7m05EBvv1BClS_oN)yAKX19atS_w&)^$? zp@CrJ0leD2ka1>PYk#&E-I+7zn{U1|GwJU?_YVND1}kZZK|BQs4F({|V6yDmhWNtm zQ%e}8a*Z9&6yEM<2AOizSFSC*O_Rac)-gZhhQ*zVv8O!gR91;-P=hqFWK3bnGvS?Y zniL+=K%;QdS6o&73=G3a3UV5Z!We_xf2y6sV^LNJd@CKP-Z6-mmJb*dcdL$)wm6W! zJha4`0KYH z#o#+(>X-Ge^@~23Y(=Q`wm#=e^uDf6Gf1qvCca{1OFCk^Y99)3pJQWaE^e7y2i%i% zZUz(TNMfgoTYYAWoyq#0btg)_WoZ(*k3t=}<|poPTPWcnElJ*Jjk`hBeoo{4UO0CK zX)N>4e;rYxw`gyKWMuZ-s#g{tB)wT{uIMXj6fEMt4dZIZ(c(tqcN|Ycz#xym2_FhD ziGeIIjJHBD+S^|2R4;Z4QMk;#*kUiX2!mMj5lrKE28$YK8QKB;2G|ukF_^_~G7RQm z4t=cwfO%NJ6T{~`MieE#K^sGx)K_Z2uF-4H9u2b#4Ma1Wn5hK}o*;UF;ejZhM(Rm* z>lu&K^DJ6Vs#{OKj~;4sOHVq~vlOW()2*ivspomLo=mr%$v%2$lr244s0aU)Fw{A( zTgY}Z79;hHLJ4O;$rjoK+Psd*;mq_GHAv|%YtW{y5DsM;ku$i0v$(o*xUlmfx8BHa gO*7w|ChcuwUCE;t#KQ?^;~^P!wegZ=^kSg@1^=uo3jhEB diff --git a/build/classes/java/main/com/example/dto/OrderRs.class b/build/classes/java/main/com/example/dto/OrderRs.class index 1ea2e0af1821a63695a11c9048cd5a99f6efb212..09952730437493f872763de9738b85e6a07daa88 100644 GIT binary patch literal 1900 zcmaKrYflqF6o%g^lu}qI6iO-O=Dh`_-Y5Z) z0DqM6o#}2{*C}82%;miAJbUKM?>|3(0ocXP7!nvtVc0?vBLY(w_LW_!+s(7e!Rdvp z1p*`6Zqp5R1cplGlQc$=PGQW#I4psD&1+QTC%bW3mlY@QDhIwJ{lk_(!gc6Y?b%hm z=Gm5#Pg=-eN?^3sZUtUL`T~p9xX)g=ci7UJtc4lOQscQ+ELDWwB^M(n!!DZCi_G|Kus~W-z?|4JK4cy?1Nbo6+@XIH~Q9?Zr9oh0a zvW<0Qo9f8sW1Il{fI5Ly&MJ(8F}d~w;wuLUS}R+oXnanKkk}#3K{WbetzQfJfbZmuE)vJjN44 zeR6T0ypiWAo|$-Zah~}BJgNt~JbBIY94`z!g*eZGk>@2|nRp6up5g!=^%lB3Ma{Em gP>ceRy5BxzX`nl3-DPtz5oCK literal 1838 zcmaKrTTc@~6vzLw^g_!*X`z%tsd#UTvfeLXObEopq>7=)`_i41C2f~%r$oP%CK?kT z`~ZF^Ax}$;eDVSKoGWj^X>t1sIv(D!r)P+7PCQ6br zH4wHK4rJ=Gi8ZVbVvctt&D%f(ZK3OtS4+3?u zHmR+jP}kmZappN6Y~Sv2!F|d$M-ihEGE^z<6$K`9$}l#+R=dhtW|ZNhYU{&CTIxj* zKDuDggpZVDEyHIhd`mTr_JkJgP5G*E=hmZgX?n+C$~TRTD`D|8wlbv*{c+r4>HNboyN+b&y=E-J_YRzIo?Xr$SO%=s3gsvk~C2y=RvI{KdK0w zERu|5vhf4#t1{c9RjTQd(tv^l`y04PCx%Ng zqpRl%)H&t75?CNeEhEdfGStXFNew2!P)9?{e#En+cphr|RgCkLv^KMM8C%!U}VfiH9S&YXMZ+{ezxPwzhf*u?z`au_Kh@1THDf$>-JFX{R+ z*mIxnzEbT(VDz3Bc*z5Sk>y&ef)dI_R2-awBQR^=iPu$bBWz3mkxW#R9>GEQx4`-3 zTH^#ry^PbS7BTK%0+Rv@?Xc^re`L4kD^~@HmmIhcWvm{XPl0kfQe^LJQqtLPlAdue ztr^SxUdKl0t7aX{;jBQ;>o84AVDfB)!Csx5zx8=jSGBy@+x69E5QK?LyfBCb<_Lc+ zqeQwr6~$hhsGzOf?GD4PWFGyh0u|}IThi|c6-)LEq_+5!kJ z?5Sj%J)At6t-&r9VtY8XOrE1jHXW|D*!HI?*$+EAGGfINUN7K~%_=pM; z1bIEdZ00$76WlvbJ5PT>;Q}u5m_Jf_JWYFvA&W77z~w)11y}Ww*MCL|88?uehAde~ znLB(1xLzZ(ODkv#EAJrQ@FRz1uKE~!1!`O!3&09i>E&^qr#Tb6Nvm-4idY!nD-H3v#0cEPEv{eY z`4%((@^CQE#Q~y1N+fU_KN6*bAJFPcM^{!4F>{=rm2#EkTrvzZ7L_vS#B3{nVr+pA z42{6LDd@1Kv0+WMOidg3IZM;nu%;W-w043fJ3pzW38U#wrlzT3O}8>N-ObiCFb1|x c>(sPyf+jn#sitXa%HbEY*3EyQC*&URKf=~Yc>n+a literal 1154 zcmaKrYi|-!5Qg6ayNl4JP;M35s;I3%6ZZ#Tn$)UE6TBp?d|%*%ZUei`_Tc4TX=0=C zgFnC@Wqi*rHw*2TGiMGn?>sZJ{Q3LqH-JOzXOKWL1;d63OCW#lesrCo>kpiF-E-Mf z0@icS_tb$vvfk)qa0lrWGB(y=3v5Q=${R_i9rWDcOIOKLdJOi1PXb%@M*D`4RvPQb zrI5F=fr7wJFBm!Uvpc#NN=N$2Q(v4H?xlPcT?Nv;P*S~rNTlkmq9q$;t(YEP^y3U& zYSYGDR0R@VU!V{RM17v9(DMf^0plp>lRVedNrc?GE`;h_ zS%+53n$7R1eB~t;(p7={Lb5qauHg}*rcAnrY;*q#l_i>WHV2g0M41GYNUXwCCQQWi zO*b#_n6IXwqw$_Zz`DXBUiLa(btT>|_9l1-w7Qz5@v`$N>HjH6U~(FIIx&+qW3r+} r%$PP9BJgx2Q}H@eZ6#BEHPgc8Vy0a(?cKnnKZ+SsIbv$?OrZG>k50an diff --git a/build/classes/java/main/com/example/entity/Customer.class b/build/classes/java/main/com/example/entity/Customer.class index e08d4e07174dfb7769f068ba38411f10164d1df2..14c08b3807c80a96356630ed76e26ace1a995ae0 100644 GIT binary patch literal 2363 zcma)7>sA|87~Ll!2?;58u-pV{Ye}F?y=#LgAb1N<3*svNIwVJ!n#|y2(j{-DYl&Uz zT0Vde<#K;>1`_C?{+V<8&ffdGo%!qU-~R-#hOY}qA)P}{5gB9^W@>)ZF+b|&X~Q_i z3*GR{S=TMI8BGfj+Cct+0R`(s}fun8U3i z`Z1s|m4Lj_ZiRl+1jO}&x(QkegVhe6Kve{0sEA>VDD-%`X%vR7O+$Of&R!U}-f?6# zR>ZhiWlU4MjXvDQL=KZhOkrA~|0*mU(Dk~)*g_Z9?$I+-3oE6=0$#;z4s%7!q?T+$f?RIfoBtWcRjQ3Z)@*NsGIuq)YR9{IIUggF;~;Any!;@J`rKV9`B!> z8e*i^s#WIeI}_GUZsOdM!`Qy3x_0=KWw7B3!$8&b%uc&`WP*K(ffR;c(~ScixU!Bn zd%_c!k(^0#_%byL_q!`0t|}X|?m8wwi5Mpc_THsMZGo1+V*mv1TL zSSQxtO2x%Ig4#=nO(|SXX&g`U+>NqA4~8$Gqh^bmLt*))&Hu=3p5PaVBeBmNKv6P& zHHu7C97*T8`M**{PO-`2PMJyU4O?+yn(=K%O(x~Znz7w%&%}_0J-;2)%$6&;zjcwz zW$E;rI>)|aEWN43@{AniY5t<3TYLff_(TF}e)$No$zJDbkmG&XX>oJm5GBs}_{67U z(P>&v$L(qP5Q{Y7OUUmM0aADn0Zr3%ncz+f5AnvgPzG<}Exc{;4&Ft9r+kTq7qn^$>NaZ;s0ex;W4>V S_$q2pY1k)R?~$GTy#Ei7T-V_M literal 1703 zcmah|YflqF6g|_|wq+@mmI_4>e9;zUec=m21cIL`m|!saZD}`UNgrgpHS(`Ckq|ZU z2l%6mXJ)r_DT{uYnVr4&+;h&o^ZU<_UjR1nB8>>58e%%)NC?c-IxWNcY_^V@mSMGB z+dVNh&91erjsl4_yKTGc0?|@=UqezLcVvDtjh<^ajSa^!PpWp;O+!O8g%Ri)Ms;K` zCNLd>yw&TvotEVgx8u|;rz?=H4)7$@s)V_wV;nhwSlet_0^?px(`+}4J=d|@4HY$^ zqadT=R?D=TBbdaLhN6yX+z`lIgrxwpUKf}s1+aDxj;xxyTK*`I+Or#N)9pDdw=_g) ztr{X_SMpz7UnR+{PMuj}Rl9BN^jZg&^UgeID%zcz+1xiBTYmeOG564>?3pmkzC8q8 z2=eqb2blXe<$W6X#&Qok^|z)&uUzG+*09_iID~1j{8m;!{PrdC83fW0ac9t zm%q5#jC>v(tDkrQ?p*%vfHEm?k&s7!#u}0!Y3Ey%30^Go90 zVLgd=$Y>c~9Kx$Cp0dW$De?p40`q`TA31|O@u!eg73Mq?zXI`;D#^5{bVYEN=adu+ zUPu!6u)tN4Fu2Rmc;y?iUwDXMj;quRCd_m76vWRJlu-5+yyPyOOeo3&wqABlWf#1N zb9M=zo#Yhfta1~mg!0J`^O*?cvlz}N;GV~)a0MUPd!alcAJ3m9-1j90{Yek=nGE6M z&CW6r4Lo3Hq{-EwPikJG0hgz);N{KYL*{!ONN~Pp2TU{k;T3zt%g1=)Gk)b4)7jDV g;&)t+;QerGih+{)d24j6;OU^iifYX>t`R){3;1y|;Q#;t diff --git a/build/classes/java/main/com/example/entity/Delivery.class b/build/classes/java/main/com/example/entity/Delivery.class index cdac88224d371263665e211eca8bc8b5994b5506..b89c1d86e85a1a44b63baff8aa19bb858a71dffe 100644 GIT binary patch literal 2983 zcma)7X;T|V5PhQ)ggC@~8nAp z(S>9j-AVMIS70K*^QNrm=hC{MU(+f}%NFP>H2f)7IprpmL_Y=udK^nDz0!@7om%x+ zS_1u^bwx8yvU`rj9oK#+iD6~mRhG7+8=9k=hVnC-#F$!-*^cJaY_&9z#H3nEmTI}$U^ypxjOP6{Sm?eXffS0r&`nRI6pxFY<4Q;}XJHwvol1BHqK@BJRAp#7Jf=a*6Q<$PGSyV5jy#rZI>a=3|yCH~BE! zazXEVj(t!<_$gO2m05KWb8Z$D;W_m{(cc#5sR&I$BXC>AqBwtqkNI8WJj+q#Ae#9V zeLr&&;u8-yMZoQ*fTLFde}Yf_fFE;I$T2s zfqVvA`J@B+6oUB-w(`le;o~XO=cDo@upP)}q?ONNAfKIJJ|nGsmfG;~YQg8D?o41e zkk5E4pKKtXXTf}$6zJX8oi=>D>ht+{`uQBseF-${C(+91ZU7&zSoavzKE7bVtTDhs zvyR;I3pc6oUK?Jj_yrDl-Ydx%%k=?Qe5O6z@W5Vh@k<=~jJJKT6cwLX_#IOryjaNm zhFgvM@yh-o8{8xGv5z!#oVwC+3PrHJ)X|DW6ZpCJ+oFW<4Y5M_ S*6nwy{~huFJEF5GYX1VUM?&iW literal 1455 zcmbW0TW=CU6vzJq3lvx=mx6`1YP|wpc=5>^6K(ZHG)-uDpTdN$!mimJ8vEu)(nMn7 zgCD>TWjtq=f`!Egv&o#9Gv}Q7oy-3E{o^Nq7ieY>Lp%k`MgmEJy}mbYt50(LairSH z)sDVszm$P`WwrvzXO8RW=K}FYvzNvO(kWzYWMK>JMED-5k#ny63xT}$W&eZY4&P12 zr^**7b>7Q!*&a!E*zRhdZVotL-o_?J%MMha9an0{b6H=sQDS{E&{9tVR&Cj+uxg_} z3A8unpw^)`Py(AB$5r7&C-QVeno`H>%TZ7I4xeXAOP@IbCEfW4`GLTj#wzOnX_`HO z!ds=!yuq>b(Q>N=p{Jwhaa9MMg4Svkc#6EQ;MuTP1N;5&b7YkC*GLjhx zo;X^obZV0nBonRg5MPbiHCp)^NMoB;J2XHIbvm*04h3iD&m+IZmFh#2MaEe^( z(G-PN&6=XTh*+nXAT*2OrIACPzA_=!P%y7N2_wy3p_nEOrl^}lIJr6xBI0Jp$ynH> zebFLQkP+w_G?)yzhwHRn&F~viU+6N1MTVuw3~%7(EW@WH`Q@a^Zjnt`pR)0;h8A=3 znP)qa=T0PWZFZ1j~^4yE&`D^;Ze(kQ|;aQsVg!6NssA6dR0Ub%&H~;_u diff --git a/build/classes/java/main/com/example/entity/Order.class b/build/classes/java/main/com/example/entity/Order.class index ffa0837d2c3f238441bf8e7865dd59866147bce9..3820e22445d437d966b6e5963f239035ab08cbf7 100644 GIT binary patch literal 3535 zcmbVPNmmqC7`=~fsHQ0t8JuuH;{c7?PBGCIBccRN14a;|CNV|#Q%b6Dd1-s5w~#+$xbmF86=*tX+NO6(Al2J9)r<_9HDq&0oR`&wmk6B=$-Yp#jt+FvLDw_9nk&#= zylu=IdCRbGW z+hf$NxH3N|FKYUKH(@QrgP6q-&T2TPV|b|=>gixr$~!f~a43_{pqNw_M{7Xi21Yau{PU6T1x!(Nzl#%)<(HQkh6Y35~|!-_b$FsC@v#ldS=1$q)y zUT{o%$gye_TXEWc-L*vBf5T+CW>l>ibTGv{LZBsTbDz2;QR|Y%0PxzPY0IE4CzUGI z?yBsjjH;>5;bq#JF$sQi(#Y|9n?8>BCQ<7HDTx?0W8ua6>6>C&N2NF8lrI`pqW2hX zVpM6ZkHGEB>?*T|PPMpk{+`ucR5n{DJT~j7F&83N1|v6_(`17YLufEMGPQ{YBYHs@ zRO690{ZZRYZ=?OPVHY;6;?HC-1C93D&zHtk&l9qQ3<>osObo(Exh5YhrjR9VxFtu+L-$d;umfj@IHSP8Q6du z{8i480UyBNs)VP>rGzc6X|A10IM@FeT5jKCwC46d#=0e4>nQ;~KGN8XW7(d>hVK4Fbme|WcLN?^O?cSBbSPXYKSu4o@4Ja^FP~VwOli)yvOdsM$FwuV zG~-K(9X^mojys+OOx#WY(7F=9{zL$?ehL)&WdK@30K4J<)FBDLAp$r;07nVn*h>He zg|`xb%7Q=z2ND3RTM6KJA^;msn1NGa2AWg`V%4Lb>c9YOMW8peo-&ZV`KPtc+)@PcDn-e~8BRJol}^RqG-SMOW*{ee?-le@dfJNP>)SW?z7h z9)YvW{WFdJwDCwRBiDTUBC6|Un*U)C`6oFYO~Ezg67fzkGiv^{QhmZO95x(Fl%iWjw I8sB2mf0xfD&;S4c literal 1400 zcmaKq+iuf95QhKF**UaL>ZG9%TF!|%_?{pnC~y@hQmWj$$tpE+V&pg#eJhZNkhtIh zcqqio+D=NcL6-L5nfd3No%#Le=Pv-SU=@)yy-Lw{n+FV5t%Cv7J=hCq~XF9g~Vc<^3U4hJrKav8w zJ$EWU%qQnEICIWD`cv!qL&qC9fy?*!XC}OGN$F5WtO_H=)3(mKtVd^Da&HoL1_FEU zWq9F_K01Ljk)aHTpfr|YA}Mgx?&xF_2ZAciuKOSVACYr%f&^=8g2W+CkX!}y2@-pk z6Bv}BA9uzieob!-f=*oO?M)AsDfaz&FqH3H?paaw;2BHd4$V!9COSN}3!%CeTlY zxrG+3|5oxH`LAS5VO2?0Tgh!4#g#m#opa?>6)X1W9cn7N5qT_Gb1^G(WodL2&oOmi zlc%!IV`_Qs;+~GDvd&ZA!o!Ug>Ya#(-$>v-9%y)~>pTZqo`-m()W*}zh(ro3yXZJII$h0fT3MDtF9kggj7Sj{B)#_9`@HuJNiafz zAJ9idd(VJDFMF+X_F8+dbKF=zrhWf>_5qa9=xPhXNeQT}W~b%|#539Yo&9W^_jbEw z)*srfl7=MaCDK?R*;62!%=}knuQfyTTm!CFa!#NFx4WROhQ4Z>OF`q5d}L` zxeW}XL{$a?>|&2j0{b{1Rnff-k(A^n>`lpGZt z(Trp2tAeh1>3Q{jzynz=K+_>QZOdxJe?2}j@L}F4C7sRbT zlyUx&$Y##WnKN@{CaEyx{``JUfDU(Kx1gGf3j1*s^oB00tZO#N2=hE;9JHa+E)L5k z%bILQQ=}BWs9Ms~>{1E8m7m3BT1J(V#mK2s zmC4RH7xg?#wB>D!3+dZRXtU&!t9VJ;UMuFjazs9&U~n^H%iwlI*pz7^X?nJ8F0LQJv{?R;H2fqGsRiejnrk+Xw>wJyjIg4 zuw$HK0xkw;^Dk#!Gk;oPkZC7VVHk9Ka;Msrrk-i_s+w!mt5F9g;pb2>O)^>+GMD?m z%2PI9m|}}?L=iJTSirW#v5dIsmx6&LM+z|pPAR4Hie~7Qgdu!aInsy|LB1Wrj`fE- zX-F!pL87yO9#ArDR5LWGgp5%3K7zHVk&vY-XrLb(RQZnpIc(CzkjECOGUjJ*lx5A3 zJQ5MAQ8EU+zbercuubYdjG>4f+SnytX7nsfN+`EYZspKd_vAqzHQ!}lx*MMCgeTjPB0PdU?03V9?Ztz3J;V{AxbztK2Bt7w ALI3~& delta 437 zcmYLEOD_Xa6#njvJEPMpA`Kgos-Vftc*cS$r7eAUR6XjsYBCKALUjBEd%1svNV>3) z*xFj#+u2xHiE}5?*_?aMcfQBDcRlaIdi#BT0g%J#qg7?;_*pY3+_r+N%jS&*6QcrS zNHD}(5pE)Ve=%gYEQ~`}BwN5iF9RoW#aHlzz@(CKl2v^9!(3xtU;&=AwHaekUbDs1RYnXfh`=6z{Dz=H;jSnwHzhyAQEED#_-K!GGAtO^))5se8TngpDL6;zbTZWD&=?kqDCAl^W{ zUr=AH^4)h!Uxw0D`DF3ngT7e&87<52%*?`U5_YSmPj`RkoIc;zmp}gd^)~>c_%?$k zG@EEqXvG=>otN#acCKt!=W?fJFY97pV9gPy>I6p(H1`h_Otcy3DY})MzHV1)Wu4R2 zzzG&}r@WH(GBDAc!8#}t>lND3VPJC_TngM6XGyh*na@t*uN4hOWXL+Y<>n=S(%9*g)P`>pq0r_mJD<^B%W}iv|02jY{w45 zm{wpL(kUamW1hAHT^c2O+v@QHr=oKcZqY7}b8dz`)|bUz zg?;F!8xy76dXs#sc*Tha753NDovD@LbP{k_;XplLYQn^03XkIn1M6gg3x42Mv}a%^ z*Oyi(k+TlSn>b`(YZ@UM)~78Jdr*iSL63>2SZ*4*ES5lf1)5hlB3r}cN~Y|JmWiVZ z&xy_^d5FhGFskr^;M#~gRhO~5p zE3~LjT0XTfan-<%^p2|7wVL+gD`YaV4YZ88CC#NwI8_~UGh@$|Ino`Swu0?B(oY6k zf=iBXpsykG%CLEEu)sYQ-E9UAuUu$!-&t4ktDc@{k|9i2ZbiB4wlw5RU4ulmMkwx` z22A>1C8%>!2bbK^Y1`w03AD!=GJ$Jpzvfnb7Q1YT4c?7we30B{+)Ob!8Wtn=HmqRT z*&w!*9ER1gDedl;&Y%w~U9zv|{a>7?l8HK*X?MXZ>f?^+*BQ|m%X~l{2gb4%C`m;Z z9N(d)qt&X*2ZXztc?Kt3Z!YK8PnebZ*S8kSsEj$1W`J-IHH4 zC;-;*dyTyuTZ3)u;2ju0(`dqVeq|bb))x6yF#vDl9rg^oi}#2U=d<#Zvh7}idF~F@ zP7du4kqOZ`^b<$pNbM1#9c}19C;t+$FZN0z(jV{R1|zp2gPZt(p0|i14ACd;t`K{q9S9*!?k-L&;UM9Mr-r2;;>i$CC+0ID zo=wc>LyRTn@en5x^TiM+hlWGEMAxaiIKKpop=P2`Qz6cTI4ek+=R&-Zm~VxcO-vo) zVq(sPxSW`k5Y@zVL)0X}m58+Fi2hmhu*xh6*+|MZvA3C|^`IZys8}y={q1}xc3=`a zDMBBL)VGS=ymI!C)V-u{A8r%7%^7<5?MdIAMFV4M45)tQ5e2y=uz?bw~ho*nwo5=oy3w5<_a=Zy&Mc>=_nyqZ3 HZ-D;+dChCu delta 470 zcmYL`PfG$(6vcn9(y?L4Qq!=1re!u-llIU4XRTTU5wvh=C_yVBmqA~lm`%_pXjcRy z6!Zc5J}ryxn+e<8bKkw^oOj;LckIzLKY!jnfEq{l=9d#ygf3g1W z29_R=m>6U%X2`mARSwTu%#nBRRHa<7SRkvg#N)i(Y;;=9T1RV&7A5ks5Ubw8VCnT~ zprPE0aNd0gU!5+}CsCjuxsgpv`+hx;-xqw4L-+*^nK@+u diff --git a/build/classes/java/main/com/example/repository/CommonRepository.class b/build/classes/java/main/com/example/repository/CommonRepository.class deleted file mode 100644 index 486841642e5e64606627ccc116b43ce14ebec2dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcma)3O;5r=5Pge40lyGM^bcq`Nbf>O(8R<9gAwAv+e%klvh9-XLg24?@CW##i~|*@ zk{A!ocIM5z_h#nf^X(l#3#SfJ4Cj3vcw)+fkrJK}BOOVr&CI*jL7>BjRl-4Wa|w1t{jBij*VcbY!ozly?T?Xa&wZa z*{#pux-rQ@q-%`~2lXUxXJn-gxuUM(ov^RkzvqSr!U_{Hq$E*X{F7p-o{sp0?42ds z;_;TsiHS)!D?%&njBLB)ze*oN!54}=#50tWOv@P_sYpy|E72cCPqctW?=rE1ZzIjk z6!CTS*!0DXRAj&W`(m~EF|rH{TXb(ALkG+tOR+;y3OS1NDA3>b9A(&{Cx&(j+Qa@D dDz2adf=W0fmUS1Uj!^!QqSlz|7?p+E$roJeo<{%x diff --git a/build/classes/java/main/com/example/repository/CustomerRepository$CustomerOrderStats.class b/build/classes/java/main/com/example/repository/CustomerRepository$CustomerOrderStats.class new file mode 100644 index 0000000000000000000000000000000000000000..12144ceadb4a1a408b4b24b7cd84ced98c0ef3af GIT binary patch literal 371 zcma)&QA)!=5QhJ0HECmOiwIu82m9h4Kwl(K6iN%`1Zx~ZO0rvaH=gb87$d@cZfnKwx;|8_93QMNgLNM&ZG5mbyXW8Nx{r45m0cEe z@G(vZ%e{Wns?w%VyO%xZfv_kz^z>HOOt`#RZ3Zq2t~A9RVJ={&OKoFh@!}7*u^p6T zwsASH%SuF7y>~e5wiOd5TlV46`VeDISpB;fVfJJUyR_2YvzH_KCx)UCfiRYD14dH$ d6cO6$F(#6XF>P}sIP2yN=Q0!75H%Lj^avn#X*~b{ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/repository/CustomerRepository.class b/build/classes/java/main/com/example/repository/CustomerRepository.class index 1a63c937b205abf977459ba10f8483ae4b637f29..301943ed6dbfffc1017ee254d3616f46ab177b63 100644 GIT binary patch literal 1627 zcma)6-BQy)6h2#9Y5^5NLGW)y)OKXZ=!`cOnSl_nOxs`zGJ3bPOIb{IYqCZ94nC0= zK7bG9c#@JfwdLnxC!0NIzw_;Pe*XOZ^&0@zA)kd5fkIt*20vq7%jJg8TPhG*`5nV- z2U>aDcX~%zNE4VkVW-S+nQR*N;R&znEQ}F&r~IZ7w0t3(M?UlT59NO|8cZ|eq{Wh` zJ1y1+BrtI#WMiXac}%zj^7(Qfy{1F7VxfD~*1|RHmKI7fw}><UXx>$Gfb?a>{(R7I@F4ZZ2MWAE?MjW2j68q0AM+u5|7 z@H7FpY1K>u3rU@W1EG&ALPmPyD`)bh5n|`OzQ@~Pk3r=}66xa`bQh-4)ODSKdy$R6eZ-v&U=AG~z&xa5*oEHRhyVLNg2!l_3|T$t n-d;dzUErrc(UyW|(WNmoFXI1mTxr}d!AsnYM>_(q#&Z7vvgz;` literal 2103 zcma)7ZC4vb6n+K>OTt!Sq)=>WYfWncwOjGEhEgFysfL0C(N_I1B$F^@vlDk`QT~%3 z^c)YK_Jcpb)8FLjo!vlo3nDpZ=jG0w=id9=J2(IQ`{Hi^i}*2z0SsCgvXQ|sL$RSc zj`)>#x~_11(N%%e%0F<{cz5%7$1prEJ*gKM2217bEJl#Ekh3ugo1y$45Y;fysw4a) zjzuD$w*^C~_KfdyC)Cn)8p>;gzArrORF9XdJlG{KDmlD?F$;McZ=%3(>wMS9<$dmk zB4D^wDkp4JmFtRzmddM)VjLGOOxT#jC5G`na$kvX0__XlVYr;aiKR|GI;<3k+_!C9 z#ubJkEdtFj*Nf2QUfZZiuU$zx(h9xE4QIm_P1)dDkV98-&BApX@8AZ*WZ$8bHS(z? zT`hcudr2BkK};GnStqkJ=rw1r;oaOo1MM{r3Ra<~J>!d)95V2&Xl#hFl`0L9NCcPV)nlPs?9JfqZA z%1?>ps%ladjn$+l9*3PB;cxLBmn4OnYH)X(`_k-t!XdpY32e5ObURV)N3QovwZbrJ zSXnyg1yV{na!NXnnPSL@IQBwZc8S0UHNPhGu4-;@pLYc1klf1FW!vLA^vV5)=QJ~) z3gxv7R2In4xXU{`OTY|B7Wz85`DX>MvZO1JXcPS7<^uVv`|MfrP9K%@($54yrh zr8~c*l%_YryK#nsJm$uR@pX>6UCqV=e38dvhU=wNfUh%OeoA*Xa`*^JT^g1ftbrb zk+uPyp7|5jAuc?}ThvKjUZzvW%!*GV$cGHXg!JoK~CZVuF%>Tn214o1_%zH zqe6z}=`6!&1Kg)?01Nq?DKHvj+t diff --git a/build/classes/java/main/com/example/repository/DeliveryRepository$DeliveryStatusStats.class b/build/classes/java/main/com/example/repository/DeliveryRepository$DeliveryStatusStats.class new file mode 100644 index 0000000000000000000000000000000000000000..e12d039931751f484e508ec7c1152a9fd975c227 GIT binary patch literal 370 zcma)2K}rKb5UfsgH(3*nQSbvE%*A*^0=UO0MTamg+)DAgUabu)&ubT|==@eau&Flew~Jrux~1}{V;!0r zQXCOROTE#`Xj`h+wKGk`aio(X#W5J literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/repository/DeliveryRepository.class b/build/classes/java/main/com/example/repository/DeliveryRepository.class index c7538c7908a35a1f97874787dcf6c9c01a4c7e86..3eb6da0ec69186469d33d27568fab579a387a890 100644 GIT binary patch literal 1514 zcma)6+j7$|5M6~dp%+SN3n5%hX_$0i;^Bb@2r$#6ZYgz>Vy7@XDzO^WI<}GI()=0^ zd;lNCu#S`3X?lB*Eorr9kIwGu@4w%F0AL+n~t>gD}c0zlB%XGm4UvlM(zP`a+ ze#}JQI^D`cmcYUxJ*K)#y{_JDAF__hLyo{3UvzaD2<~+c1nse3zBtkys;GV#&@}4j zfF^(hmJhh+)cP$!J4fi-2zzZN2$aia62?{$Y;`T(3Ke(tW}vw5QMZbGcA5I&J9{(= ztC)}k=G7UvX`6RFszSjCY+V!jy_wd9d5WtoK|cY-JaMS4{>S!SI>zvP@-sss85f5<&w8uw(fa8a=;8B z4c)wMX?zK>+EAgXW9o*Osh(|^M!lsul~^*3O3fJ-Wqi|DTD`g7XqBA`ch(|v$44UC zrq$flMqD*V+p?Pbds^*#g4DD&3@h4+9X1TRKCH!|8)vfCuVcyyWIKc3+Yy@y_-~&K z%Rp?0NyV|u@ZOray<=#lcadv}z{jl3_C5dBur6y6t&P)Lkki!(v<-`K3AqUoQeTa7^K&n8g<^4>utL z)3}<#YvOMfM+WB5bPMJa)9q8!0-El?BAVi(ORzk!5x9%E_aqeXz&ljbV&16zZz& zh+lcT;|j+Y9TiBe{I0XcJDW!dLE!zArrORF0;rJlLfu%2`~*xP_dJOUN_aKHoJ8d7rzX z2pFyuO9@{U<+`G-rSi&Sn80NVlQyPsg<+zP+&3beK>LEX8Lp;q;$5c}9hUQy+&67p z#WjW@EdtFj-(%=jTPyeuqRV2*E=Rt+@&fMQL->=V-D|8E|N8; zx=G!24(rWusU`H5&+B`{`DxhRF_BIj;wJNv#T_^n?%MbO^9;F&aKeC?il0O7QWY;J z)49I$oN8DuJ)>+_RD|NT zTc*%WdX~G#85NTeol@YV+%a6#$Fh-+6`7z)esXI<@2bWI_jy}Tc`49LO}0F)L!Sse zI;X#d6uD!?DKCCx+?GkQCY$+cJF~w2|DKWY?{3PqWnE4pzI5! zyB*=Al#p9iO4ED9J8`Lk9OlPI@Ku&NV%5eM_%es53^$4?g2zixdPa9PviKUC7HT%O z@D0PwzV@ZJul9sfjfzB$c$3#nQ)U<=UG!J~Bn8pC6vws7y@o4-LRG1~uv0!Mw!}{A z;ucX(nxFqLc6s*QUN?$V-$Sl&*R4tFeGK+v&l7&da3&m1vI}wF!K$h=ZCa%Xk;`F&;AAW2Tca>5k1W@kip0Fv||H&f=_A1@EPtA zh`Ia|SsT!q**{?&;KB>MK~3f*rhylj8KB2I48M~>44TIf&Bu@@$SGXFHJTd-lQBro z0m0#Ol*!QooeeWu0Qc!XfW=(ah>ebn_xrSCyl3VP@b2sZ-v2E!>W6P9&@&Mx84#%@ sEEB|V543^@(Y=RQq0tb3MB^&`4e@oN`WR2JhHcu(($2T|9zS6EKS>;3p8x;= diff --git a/build/classes/java/main/com/example/repository/MapRepository.class b/build/classes/java/main/com/example/repository/MapRepository.class deleted file mode 100644 index 6979505097bfd6ebe1f385d8229e8e3800abf680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2827 zcma)8YgZFj6x|mBW5!Vs0YyOTD+W?cOJ7zf8l%=n1S-EjY zdQF9b?j(*vQ*cbfar6mXDmm4xv7=XOmXURhno~DD$8BbL{Ap_?pwwyAD~3S2a5%7O z1t;FcO!u6sS<2@8q2SmR75z9VBOVk;q#sT!NtVMJPT{mb(k$nlhV2>dJJCBF68((8 z$$hFh*VUT^v+hX|#x#uMES22Wt%gw-IGvt|g_U!w2|Kpogp#cR4Tb35Vyzt9lZ7y+VIEHiUu)3M^>_?H2T#YM z4=r&)LX&j$RKtR-sa|UBY#Y+Fs9_1q0!P{Co^IOpM@Ca>`WBz7Dw}9U!z#XESJm}x zYH}-GII!ASqzCUS_)g$T{7mf8$UD`lW5?f(LT7f@vFbjq1AL7K54}@Ke8}yQW-+#)P+NvbR%h5yjZHJ#q9t-0q}ViyUPR zh^!$WEb#A49T1 zAaYOYLLS_6xmV|$f{!8OU*kGZ&EswZH_3X9wjxK#Uk%B9wY;Bl`6mxZBgv2ZI%ffv z+Tx*hh$if1mzpy?5F+>@3nr}MS*xbXp(Xle)7D1HM3BR z8&^dY@BgY_AD^3d05=%qXc4Z;urT~)7fZ(`@-n2Egt#`7_{{O~yFYFE`{3opt*2ro z<=7z%=JwSZXMJTRPjfDX(5YA&j&O2*G5!HYUby0TP3SAq_zlC#tK{exHx9m1sF;RT zEctfkm~gyx&Sh<@yB;{nT}YCnPdNKu6hd$0J;$N5DRCkk{>hdR2yOim(9)E<$WW)v Z(a}j8-Fl7!drj?OUu&TXb;d!~{Q{|4Vdek; literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/repository/OrderRepository$OrderStatusStats.class b/build/classes/java/main/com/example/repository/OrderRepository$OrderStatusStats.class new file mode 100644 index 0000000000000000000000000000000000000000..ffeede4c52440a4d90acbe0520d0aa1834367f7a GIT binary patch literal 347 zcma)2K}rKb5UfsgH@n6d#3zU(7w71~lLSN|7;yc-xHij%$xfK*h<+^xAK;_J-W3#c z%B7pGt}d$j^K1J7;0EIqJ;GJ#SBBs0YVFtrUi(;!5AS9XUN}7d&gb1+h?PxjYfN!K z7%%OsHO@AbSv)Vf6hc<9{Llzzlj;1AQAntp>Y6Z6%99uC2&exTbKmXr!f!&!x3y!{ z*fDb13aZ8fN4fJ+QXCU5_6tE6-Zu@0nX@r+RR6oF5(1&G?*V$6?+^*voGAv1^pUkV SavXJih>`YOFH{&ON%jpmrC&Dy literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/repository/OrderRepository.class b/build/classes/java/main/com/example/repository/OrderRepository.class index cf163b71c24f4dd6621eeee4d0e926d9f406dbbd..fc40ce46dcb27543e23cb8572106f473a9a97fea 100644 GIT binary patch literal 2012 zcmbtVTT>G;6h5iY+JXuQB6wR7u?Tj@866#~jHML8=>@l-<74QCvbf#U-7MO_=7T@L zALV$GEp19$Kz-OY$+>^|&dIOeKYjv04$K6^2rSij!(`uSqvRokS=yZ6uDQ=E=LEUa9p$K1R{%eB_Md&jEYv($AUDN?!o^V9F`0Sbt7A3jCT<4hiEtzD>);8mjyecptCbFoJUYm_SG-K{jw)Ouu%3gUFg^sOGxg>0!V>-sBRVf)NUxOR(tjgYwvHp3Gvx>D*u%t}6Brx5?F|E4RzznLzPC78R}fsuBpNJEWi!a{}`+?~_JSg$L`32a=P|bdIT}(wb~I zM|b|gtd~rE&D5#8x1dj31*>4-Ew`H(Z`62WygJ!#+eWUuf$}z3D2i4%FM8S683{c! zd^((l8r{E23Yy9T5;4>uibh>_xRYgq+8+ZLf{g9qxfRQ@dZl2Wr#r%ccTav{*B=mgK-pH z(M4B#MAu-VYc<&sO`+9wm_||LWd?328G%_0c{6}HRG8NkZk<-RjS6?*E{v#@k};K1 zH^9Bq`Uc#`2(vMCzYv8;b(fP^Wt7MRSVXlLJXH2^R9V9PBmClcnuf=)it8!0Ch#Pl K#1jIUc=8YC^IIbT literal 2853 zcma)8eOJ>~9DXhWu^|d8AcCUKRmaO_l(`pIbV!|(t*E1nZESA4w3iY|lbWO``%L>| zJ7v%8a$LLYd*wzDC@-=L`@;t^+@cD36Q?m~V93H-$dc-K$Efd)bQ>xZ zI6F0+;41j8tICn%d-(y3VAQ}F3u8DdFw#Np2oWcY0wrq#=TbQFs$FVs=CkzdgoSfB zFVGvQFcO$+S?Efys>K|ynolaS+3=cb*pCBMamq4MROkXO8n|TPZCn-@>nN0BqfVQS z8>v9xR?>}K5R-%{j3!sk!WCR4T;vxWt#dYIqF$qA0uxzg%!G*<%o=#l!uz;Jw++F>kMW7X0NL&-*V$3QuE0g|b@rrm!CSzCZ)1xzQleo94_j;iGQgnS}t<@N%a~INpxGt?XhmywpH$%Ci1su{@cAo!P(1 zK(`LX3O|ru#Z_Uh==*pT=pPzGP^DX%9oB0dk z4-R^8pHICFnD~NED;B^5EO93ACBDLm=HVxl)}WI!f5OL~VcvQLnme-w05ciUH!?5iF2AybzSJ)pyOo8Hi#&&=*& zdS(yyZ=57UH<3WkKx67FgKzO21ff`)EvSVSltriy_i(El+DHP;g7%NTtbH`LhAwD# z_ORFu?Q{xF$2x(=+>C?$1AgRk51!yBzI8(W%=a(6FERaUyd^fETBGXz=qX1LrA(e^ J;5l|N{y*3r)AIlT diff --git a/build/classes/java/main/com/example/service/CustomerService$CustomerOrderStats.class b/build/classes/java/main/com/example/service/CustomerService$CustomerOrderStats.class new file mode 100644 index 0000000000000000000000000000000000000000..61f7bb2c8e5557392f48d1e42391fe8e617de510 GIT binary patch literal 1826 zcmbVMTTc^F5dO~6cH6R8s9Z!8P(a&qS@D8s5rrB9NdY5-2YK3VPv}Csr|xcv{wE(K zk(lt{5Aa7B=XAGp36+pOY|fe4nfd0MnKOU>p8p20hC&hwdQ?O-L=j`?KQc}Xy=vHp z`X_D*r_2yrv24p*W$4Ld_Y;UCp(3fF7aGHoDQY_ZYSijguDjehu}rQP8m=d5+}ZWz z>6X0Xlu79sp39(_fzh^6;|%Fy8+X@pEc-Aok#1>7p`Rg1iEyVN8n#C%hHQ(1EYrj! zt>HEX8RDMs{TYgxVt3i)vmt~a8;LQjVFY&wqhh#~f+$no`R*|`Wyrf4#&C~n%)c~@ zD%EAH>wux0cS=Xx^zzxy3^SRKKHw74H0zh$XNdTGQbo(=+l^X@J9|c{+U$%ljq1MP zSW*s@5wBuVvdi5Tn3}l7y^1J*G#u)`#~q3`nCVdW=G1L6425}w_%U&Lc!FP~ycDg; zljdkwG#rzEuq3m=)?5a2x*$i8y1UI?Z$r4AiUo$L8;lUOuk}{?*M;z0&oSygKR1r2 z3?t!T&$nke#h}vHmx^I2iI-Sb@k+yM~Y?n>$0_DXA1p1m?g2Ch0!uo8kc;l0;6;(5!ir z!4*u=J)w|V{sabSV@(sDL|UX%nyR^T(&GnRuOeu^Nq{gw%V?&9`w;N`M($&HL?9A< zg-%(Icy9I_qyO_C_H8Z*#_<>#N;S?*%2DBuOcn`w8_rLeU^1qpD=dMP?Ls z?z@R|6ghHJFpIh7IZq*gTcq(D?6>zxQ^)WE5gLI-Ji~J$FWaw>JdZcTeiiSqj?sU$ C46?xh literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/service/CustomerService.class b/build/classes/java/main/com/example/service/CustomerService.class index 53e3a8d607c62e5702d6a574c7c66718d201aa0e..b511b615778139d4c2ea8e317c581291605a4654 100644 GIT binary patch literal 6669 zcmcIpd3+S*8GgPEWXNV9VF^&~00EP5EP_SKA_@UCvI$6NFi?ua?hpocXTr`bN2S%? z_kF3osMa19ty+l&Tea36T6^F3eYf`fyT3l)%Ni-n-??7FH1Yy-l)b@hvd@2*ieo+& zXlT{35Q_w+R)hp0a4EQ89xGY}v)8eEixSJy_5eyGQmGJKbSl9hx9M1dr2-S_nH(Lz zx&0y>7Pa(H(aw05V<)$TH#EB)9U3}yEW>hvnH9u}WlR}{LttG9*7w_JX;EFueqYZ@ z9Z4Cpde4zAmyx_&$7-w*m?T59`BZmSpnYtA_*!=iNehe|o&9{Q)o`VRzK$`iKrby3 zSab1sOPl-*TdyO94FZh;uB~~)VyF~o47p_wmO`aMlcsIdaW$?Hm>-DfHS%VcV|xZE zXb*M|+D^gjGF(%jEoyKLseXFKu^C+&w&>W3Z345SX`l6+GD~(HqcaChFGSo@N>)FW zLgCVJ*XiiS^#To+yR%@rrp@xes<2l>T40gyN`FgtE@uuJxlM(^VxEh(p3IoO{}T}C z)v*IRnKXIhsI)C(czZ1GFz;N?ustTblH00jDxmGyCCgTy!1P+)=#S%t=-04E$Bh^e zSQs_GW}ToHJZG!zSsr`*gfW@_B-595*$*m_=ZmEfVWZ zIt&~Xhy%=aBJP-ywWDb)(|1tE zVOX@lJV~y)0XLQ41SKuiu~#lXsv`$h$9UGvnVvb$@_xD8(J>@T!3;@`QkU6L$gqX3afqsr*ymoH?yi{ zoMK3W>ovSoU~M$WV|cl3H26l`f?GAbT*oUURX0SXjN2S*$P#EGnM*ok4Uy7crQ_9j zjlg6+^R4R&keAzI=ygSO!n3skX6NmiL+8x+9`4c*j6N}RQeS!dU2PatNo4L4V3hQO9+{){Q$f(B1CgKnCLXb5|Qz_n2wYR6Dotg5BDluEz0 z)atv;4x4Ti=(>QO(V?rQqdr3)dla``&0{6Zvf4&#fb!5K(s=0{ESvY-vDY4xK`pHn zn5V3)hR1p)yA>ljnI$!Il*i{V5;% zL+XQ`A}e^cu8zGtF+?h4rG=1}vYPnqq@2xu3i*Yftw*f}r-n)uVP~MEyjI0GZi%W< z!F`UWFHjc7s5fJYn-#IRy2~}>D;-aC3#=a9^;CnZ6Gw7qir)%LZHI+ue$L1r%o=SG z#T8e#T`q7^CBP+nNu|go_(Pt`ST6-OD#?4v0N5}>8v}Z@trFOy8l|M>F|{34dr`GV z*(oWn1xm=yc%M@&WXx@r>`*Nwm-huP+$$xu_})>o4Y+JSrsFYjli_j-ZtOK(ug8>K zk6~-x>^PpwelZlZEw>qqnkM2vGY(F|5BTa)(${)|XQfuZFt>_UBPUzOsn+1=#|=M< z^R@lQI-bQ>o9gjXIr^E7FXQQEJk5z;#_=osTElO2{1(4c-XARcxO3D@rv3CG2;&eN zm;cqEk^QqWdNxY!a8rQ!I>XN9Ot&rVI7f>^sYnF~+e2hV*|?jYi7vnRhk?rR_eNjQ zL&;r6F4t#yW{NKPLmYp^pEUegz9apGo~{(haCLw_cx~ENa>{N0e>a3)+ZS*JNrXN~u$+0~-F$gVZQPYlTt6KUq}9U&=FP5OaP^nZ(y0@RyJu zt9X}?Uyyj6%-7I~xSdb#;AntXdDv;{d>Ep0**R#P%g^0AG#p@1&v_KE(Tm7^me!9;f8jCvK8j_wy>3Ue@^#v=K}d z7{N>djwTO0f_Zz+V=*{&S&V;H2;9%5Q8aTg4fAN?d@RLWAB`S}3(=hM*MAsy^4iEJ zck%a;y||l~)%Yk)kr-|y2I-->62r0)tcq3XAI23G#Z!E97t@k9e(hT9E1ePSFS}qa zK8BA|hctYm-~c$oUksn9g@hkVLL^sniA2&EB6&e9VsSkM0v!>Bjb(+6xCfuCD7=RY z&+r$+*;)$k#WiCnylS+v3+0}r_Q4Xco;W4F0+6WyL;r~_!~@v~mw-lWGfiUqR6tqKH$=V|bkU zo}gCA;b7)-ygS307@n+^SD(j;T8TVo1m5UGJ`m9xWzJLh0=0xxeTvEggtBJn+UzfqOX$YE!_}tgkPqNAb|kJGmxWhnnN^AV5J< zT=2GGyi;De?LE@K@yItHnh$;&KiMv1Wm%0btj899+t`Yo*yaNbNH|c=xq*;`vh4&U z+({CCElR@G&oY literal 4364 zcmb_fYj+dZ72Q{UNETx-3dY3-#}FGogLt%rAWFf;G_X)VffJH1^3RKbI(3!pMCBf z{p-KC?*KT9za|kwLmZ77n$RrJc3ofA(*@mJNKegOmpNCU`IKQA?rDLBfx+1pB+wE^ zQo}ZA0*~aZVp`tNi=~20JJMb@axy(uc3i6{?HT`BAe9SNre(=;4A-((1ctNWy>{(Q zZTq@$Mxk!kumf!Z+pEqd^ioOMj3MHv=&jbA_(qu|9i%ioq*6?&bPT;AchlR7{QrWQOq-9Q)Rjm((sr1bl*v8(;q}XF;G`88OKof;oV5LW+3D(zZSV{9` zGv^wXnLZy(D64ZAkK??CkKze|j`fHmnNd~rE^s0U*3;!?Z(*#+eh=qk8a}RiqS>{S zq*bR(Xqd#5Ktf4>bmc-`U?9u~c~#O1`<*JO4DWQcCNgS4{+tJ$Ss; zP4qj9OL2Ts!)06%*dOkqx)d{f*YYJLkcrkL?^?BIetD&rXC%ApQs2c@k_^gH-$}mAgZ&Bc>D3e>?IT1eVN+>fp%VTTI z$}`>_S;Lf*<>H*QFY0pzuB5V7PA|;rwxOPb#YXpuiav&A}EoP zIhoTLftbM)AQd|Of&)O{d_4h$v{-H5`$9D5cvQO#?_{)uk!Ut{YUHKEK$BJOrk4cv z-aD-&+9s;DJh|1)#1xy$rMwr!xjJcW*8)aT~!LydVn0D9;(sEZyG99=goo%C*4z7PrzSj_&$EHqZz+S;@9|19KY4@JN#bYfOkH6XN_SlTZ=NC_1K~(eO}M` zU##2MgX>TK4p%SO8YYr+cOJjW-UV*|&BhTee~8eT_Q7KrR`iv zp#z`eYLCAipT`&Yq^uO2@Ma1yhA(p765}!$fpW|)G+50-u%&2n)6AuWq1uoE~&{#b@Hg1sK^_<$PX}Gpp(E| z>K6j~v5z0Y-8hAZG0xa0alp%Bh+%Z`&GYyYL+j_?3!KHc(uFT`rYM>Ua{LPCO%VU# zW}$w@&`jlWl}0MMXalmWNcavPrk>ZE;~<$sKV zJ?>#|7ObDPlCFxPCRjy)LiI`bF44aS8IbS{N5y@I%AF+4z0RKTr}K?B8*cKIFF?P% zXQ=+O^gqh{&V|VDs4>tHkgvo=9kqw5&=yl?DdAPoRo^Q1`$mX*eGMfwI%`-vnNlo6EdMfR8>Z|K_S%4FT`FJ;)h-#8u23n$M70E6kZGenB!0QPbuk_4Ev|} X8QutHZ*ukrzDqLjKjJ3-f<6BO0tT&n diff --git a/build/classes/java/main/com/example/service/DeliveryService$DeliveryStatusStats.class b/build/classes/java/main/com/example/service/DeliveryService$DeliveryStatusStats.class new file mode 100644 index 0000000000000000000000000000000000000000..ad46699ddc161325aa9406180e5d0303041bdc3d GIT binary patch literal 1826 zcmbtUTTc^F5dKbSyKPx0l#3z?D4=b*RJ3OIlD`{4V4glXwRA1nfd0MnKQrtoc#i@hK&S5=ur?>5kZt;;81I7xvFL! z!Oz9U$t7j%5yfinugAEo4jf?xpiFh zeVErnR7+{F#qG39eV8E;($S6fTQYwZp z%n);g=gP2?E?hIWd?oylkK-)(byX`p7VJ5K^fwua~y_~U}+4qDUNu~ zGu+b5a+TXN1tE?a^?ac57e~Q&+&ixGO>XO!QFnwDblIqCwjEUXF+K;vc0uoWPp$5# z+os7aHzcRl54Bp+UJ?pk)BLt8(IxgdGX-l56PKG(le{uuiS|l}US9|)xyIxIkxPco zC}`8*4t<#*X-DoxI+NL-VA;7-DB1Z_^qr6@gh}5Vc!w#vPkE-ei+d!IlN*}3HyJ#H zX}ZTlq?R9nLE2d}geQ@f=#-{P_KfuSPS=YFs%PRO4AM55?czQHe7lnSIPMdOL|>&- z)+3gkJHyz&{6{^T7Qq-EAWaEKS`kJ9Na$@*%8?`~MY2DjTt+D3M`To$47tdRg3f(c zagHEMZXwKJ-aQv61kg_!ufbk>AG$h*rwG#sEa5Sp5P8}D5XlR8N$g+Y4c0OC7k|mJ A#{d8T literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/service/DeliveryService.class b/build/classes/java/main/com/example/service/DeliveryService.class index 77bfa5154b1e51f0296de4bf9c7d9e2e2cc4e84f..8472d9c0eee0f7bee2cc5dd6ddb3cecc097bc0c1 100644 GIT binary patch literal 6205 zcmbtY`Ck~J<^)GMk{#46i~rpMAK$m1{hg(mYrE5>5<;| zo!(7bd!(mnn>J!FY0~>h)BA4I^AG8#&pR_aI|B>qr$6k@%=dWT=Y8Mjec$iQbN{{m z41h!UPXaMi#Ia06C8`waFY42JGNWh5k|!=)G}4Yj)qXQ;ItLUg+B=4-u^iQLBsA1O zQ`nrgCX>b`eKMCZlD3hbHq%D(u#qvRjr`1@_pHz`;*Sg%ImX zON&#YwN^tN>J@5>!us@F&d3u(M9`!=8VK$4#qNh>x1tkwcjb z&1moFb=^~N%uKS^v>nQQ5!S@9R>L~95LBSA5wAb*Kik@E4PIiR+f{5?^s8&j_EKasc1|_94lb(z!U=;mS(tnf_azQFVmRI zo$TB3O@TIErHm3C9{R?3|UgjRi2~Yl`BCfV5K$P&h7ByGP;vs5y%i zhE&9?h&Zvi6q$vT5f=1n=tDm(FfNf7w#S2}ay%H8`a-m9=NlHBFd4r@4v^9qe2d8R?sJuU&-!nj!%%(gdd!wv-7*sNA~iJBAXtgqb)V)bMJt zX>Hi1D49LL(NHDOjn`^;9UkJWZ8*_cg$R+0fpm4gLBktGVXf-~+cC4c)HV_LW({u< zfwdHP*a%Hs!rL^wU3OJ-mltT+@JP_vH1hrWq#--r zui*o-qmDbma|)-TNxx)Rqp4rEKBhW`SkHQ_5!R);UNdWW6hEzB$Z({g*GlV|Aw6%( zvp=}Z88;c|Es?si2uo8u>+~7UxHWQ8&(k)?$a8D;pgBf&7V=cFvq-3*-S3YGj>Onb z9iYTD156il(ik#rldukDvlerT!J+7Vy;goKY3C%hM@8cUR(>Msvx;pS%i(!xUdszzq$qN)wnvXYGpy zKjNGD4Jf{1?ul_=N}*+OCr^ndifa|tM^?^nR;*sq3~7EK=n5gUKb5v>uUlFA3vdFp3)^BS(8t`0^ z(I+pA=xycW+qO&L!D!mudT63Yx?2f?95#tu;b0_*ZXE(G_wDrZv~8!tnW$Znh)hMB z$9$hgEsE@vS`+t_uq-47twKI+95tn%H2QuozO;4;XLy_{TeNL93&V1lFv&sh9hZV@ z`q^;%3^|5Lx^-KYW0N&GugTc;*i=`E!}U1E%P$jrq5YMH@8bt`RrrlO{Z_*>c(xwT za^MdM{1JbOG?1}{Y@T{yY=iy z#<1IZEo-8XOD#;9&`4zCY1$iJe)E%_%BA;)UtWF5J$fcHXgUU+s~yi~jeJi=w{1y` zRY9~$JrD7vd^ykh;IBbGdho76zC`f4g0DQ4_#kH< z=F?eTr9IbmUW4k~eiiY~9apj9aSp}sA^taD8ULI3-;8RkMlC-ce3&Dx-Zp#$ALSDT zxN4MpCyHYD81JiN9F|EQ0OTtMH;LB!c$KBwI-fv%4l5Pruv&pnE6zTN^=GbQGdQ#@ z#=qMYzR9IwG%Z+#^)zthJS3khhvf74 z0{07&9IxW!RA|)5uja*>N3r17&>Cg_Zoq(TJ`P9hw5| zO};OLI)Wph!)3}By`E>TQ2%52y6=b)UL_>!eElzvaao=JaDq;{QgMaT6(M5oBcD^W zY(LiEKqxBf0wn8vB;Rm%sx?L9FY{TbRpjKfuUw))P7W&ck`-j-bqviXqlciGc?9$z zfg`l?DAwW_Hu7H5!{bJ)k0Qb6$MG%d`!?rN*<{R6xPtOA%)iig-?}J$XEVFT%q5hD~9Qcb9BXdx?(tlEbNM>!^oZvkd<}C zcQ8g5Nc!BttJs_H7{qS<7@xet<#|GP^?AiA;d^3!k*ZHfPo*Fcd4NWX$i}BIeztQC z7g;3dz^{|n;FQXNC;Vtgcq0qP_kjACbZcMM!-OJbX73Kxmh;V*EIM#ye>@zvu5c{2b5wcfSbkevRMZZ(OyOE5?cI V1y+Lzwyqbds_}RH6aU7V{{aovl~(`& literal 4523 zcmb_f`&Sg_8Gb%)yDTH(2BqQ+6;eRrf{HP&wQ|wM2G9V-YTCwO8E|CTS$1Yo(wi}D z)1;TQY1+mnZF;}jmY9Hw4eif8{bBigdQMNDcV>3k0YpzvIfwne`M&q^yzl$G-#7Em z|12&6=)zJ2B`6J{OhY*;6l$*OGkPqkrzT?OMz0zPN1@_`nKGS|3Z>00Bb5lFGK7eR zDrgG(6V_DBxUNs7lSa%oGBakvi1ivtbH>Qb4tdWC(J_Bz&`4Xh=~$Urg#&%Xx|zaG zL48FyE?%oOY(|Yjb>3LNo=zJXVh9+Ta#ssRJfV1m2BI3CkPxF1j;SZjmyBV{ZxN?Au5=rZZazCXD?Gm1jo=+B*)lAL3_xIfV^3CNNRKAnD zxBP0uHU34=fCIvWHihS!y=Yu63^^GyH4*>cR$4~FIOqZIICS_(=g~0Q6|~&D0y4Kq z|8rp+QmD$kNm$FT5cj<>jwo#F$h|GQ0zY@BA^#xNI;!Dm98)N>^%+CqRC9m?e%`uu z+c@o}Fy8WreW}!O4RM?x;cX{l=u@mkprYPtjH%!z8Fdn$4B?cFZ)}z( zV@zkwj4@!P2C~ACCyP_+i4oZ9j*CaxnY|iL6|1#x`P3(&+=majb~E{$Fx$h zGya5Rd=_Uz__T)S(5Fzhf;bQvxk&2@$9%9Zo7Y+^_7%`~{S0V0C!JK`SkeemvF9}m zVn`t@4bwe)c1)qUI3LWbP^{SQxwJ%}Czv=!)i5rxB#k2kMGyO;1n z2%ppNd3-@(Z*lLfn_|LuERRwO@nB8H9IMc&gVXCXE`Kz-o-b?AF{%)8tU<$0TPd4N zUS)LE39!m)z@<&%D2xelXyt{IAsxcBh78zB^~IG5!esAF7|w7;PfU_O1KFujxfE*i zty_G2$?=xeFe4bY*sGPq<#i3S;;)(}dwDsSDP1TiieJ?5B~h%VVqnX{S2TQ8v?{4J zceX9MLnTJo}4f&J~kzn*zok#wNZ$^c&6< zYwWz9(WhAAjASK$VRtC(3Yb|&xcGGqyGmpkItNTB9N6yeQI<} zZ}fs_aLm;RbWhdd|DS!Bq{W)j93Q`(@mH~9W~P)6~NtF#npBnT*-wzhODEX(Q&p3NxKG-InF>!qn4V zr`R><-dv6sYcR^;ukxZgr{P!l_2vrPiQof#7{a`U1>9BG=bp#ziDsr|tVtu*=VptR z^l?4my;oPU?^d4vRa`w^$#eXyo*GLUc4MDqO=i;@zuE;9hZ#_@_~UPSE;rWoSy&uo zkDg2pnU2BiX=hU@Bh!=AZQHOzSmeR9CMWBK7sB88^1HDpTgS@<_Ob{idaTm0Qd1&W{ywW#DJ zSk09v>hNu@HhAjz4!+ALkrH>xor%K|yuo>8370_xVv?UQ6cF$4aVFloTR%i-0k!v0 zuW$>U572Nix-Z%oeKOj77p;Bn^Hb4Sv?F?$&;25PU;&*MWYQ)R0bA;Vt*1?(p1yWq z4|XDkT{y;%mo7rh1Kxvu_#VDb6fp+!CTEhXZa;`0a9$4eZ>lKyn&PH_eSr=nuBHOm zXB0T!bnzZOabXcXzM>40yT zbR-T(I0~+MKiu;{XA2l!@ls7$paq-IO293yhi#sAp)~dQ5q?Y$Qjl`R2f%atHWzQ< zCw`nMjskhNxMP+ty6KiI{{syJviQ^jUR>?^Aej*(H`-m-t)7K~>)m(<@6wB~=cjJE zw{re7&Pwxe-l0oHM*Q55{vt<@nO?Eax3(=J0Ujf3!al-cce0R23I!G(t}xOITh;_c zfsv8`@#-bv7xey1n0^v2bClfI`MDpz#isCpTrIm@dYfAw-MsRiBE7q4znk&(7A3!~ zfTGS%zL1MN+L{lWAZkkFu%vq_x=>NF-`U30rxxJIcx?eM$@t|3+>r5=1$;x$JiI7g z7aV1`Kg}jQMjAgu{vSshzYnDgyaII=;C1>1qGP{6Z7k4l+ya&1x6~-X@9=w$(z}1) g_(%Q=!`^2&f5L72*`NJ|vwPf&Q0_h+;3I7RFNJjN$p8QV diff --git a/build/classes/java/main/com/example/service/OrderService$OrderMonthlyStats.class b/build/classes/java/main/com/example/service/OrderService$OrderMonthlyStats.class new file mode 100644 index 0000000000000000000000000000000000000000..3be5f06b5daa6563af6a7564a0fa42dbee2f45ee GIT binary patch literal 1811 zcmbVN-%k@k5dOBbTnmSV@R zi3tz>0sc|O*}H=t0TFp$RWx$^i_vIWJm+#}->mZ7rc>ii*%u}} zVO`j=ZXJ}RAzg-8Lx~LirFO8QE%^?2@(TZkjwE^+x+pw%3Zi98N-Sht6826$Mfs<6 z^kaY_E=5^7roF?kmM;B&PWem--AD59hjiS;EyAxGZoMFCoMG{L_(hfOZ5<=HLlxzp zTZToIC|(OJlA`b3f?)8-qkMuj_DM#Um(sgkG~ z*0$l8N)D7!SvM)uh3iz6y0*?`UDVzij?v(fJA^clzM$CNa1|K_!z4oFm{94p$0hir z9KvWPw8{94-s4UKRTeF$%HNraZC`jyXB9N{d4s!hO}J7+j$!;?gG8M?c_h6nLP%FS zM$>2P#_@#cdy}4T&vBALqhC+56N_DVju#qU>d0e>VXV#0p@}ye^pL#n27nBS%1I1{ z!*HQYdtdDFoNu^h*fop06D1+`TFrc@Xu)8IG=byRL6fg?x9XTpDV(rN!7^MotOzhZ zod*d=Kl7eWd!-j`o8Gg6bk6#4L(N>Aj1B@W0 z_LkZlYQ@mm3ED@vOJ7DwT35@E&SdrnSa$jdT6X3LJ%^-QaI+dxGJtjTA(e-=;-8Ts$^wBPwyuf`B_M4ffkR=jj-pAxa}Kj|Du%E7GONE{<6&6Z_Zn IH(0>%9|b?E9RL6T literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/service/OrderService$OrderStatusStats.class b/build/classes/java/main/com/example/service/OrderService$OrderStatusStats.class new file mode 100644 index 0000000000000000000000000000000000000000..251e075cfa51e2c06e5877b31eba2d6856405a6d GIT binary patch literal 1771 zcmbVMO;Zy=5PcJpY!Vg|BA|!@DrgcuVnp#Hhys>ERRGIS9Q3qFrpQ9F6L%++-u*cq zq)N&v4*mdtlx5HE0*gdM4#`aScE9e|-P1pR9sB^WfTaXN=+Y3@5kZt8wQcMg`G#R_ z<=^tEuxkv_Iny%bJVRF|yBS9eaSaI_-Ow2dRng4zk4CfA;CYAJyJnT=*XxNTb5;e{+dm;E0g?3HH5Uvw*{-JF&s07Ow!3t!$ zUfJeVSq$m2o4_MH*6>8fQxq9Sj;GviTheUO3vv7BgE7P_hxiP8!D5)!uGryu&v4nWY7Op; zm4w)7w~B!#pKiPFxbdmQUvj5vn=L8qpvzLjaGapR$9Nxr?GXLMdpYWdzG7M2b|E=6 zJN4(A*YKPM^|%ZjfDdVDSYQ}F+mt%v)c^%r7a@9JA*9tlQhPz|4mzWt1%ey&WtgN@ zwdCkb=DvgFCibD_Cil^^N2(A;d~@J4M(IB4nc^mHkwi`|G;?nXJcQeHkB3ODJ_5b8 zipD6Oid3LenQFNM(&H;#Pe;%_6F)*Pt(x%;?)|`*bGZ-U4h2!s=jc@Rh~*{@F!(qB z0ng@$U<`MWp#&7I2qOU`bRSX5lcXp`a^IkxMJVDUGO9|JTvSFu=brO8N01}85GF9` ro>K$?Tq2FvV6VORTphzhglPl{n85=gui76Xc?!>n{XAY^5re-0JfEDh literal 0 HcmV?d00001 diff --git a/build/classes/java/main/com/example/service/OrderService.class b/build/classes/java/main/com/example/service/OrderService.class index 0209535b25964a38a016f2ba70b92a5c7858fb22..b1658d3f9d09f0675c364de08f97dde4c1014439 100644 GIT binary patch literal 9428 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 L&-e@ehU)(U@~(?T diff --git a/build/classes/java/test/com/example/service/CustomerServiceTest.class b/build/classes/java/test/com/example/service/CustomerServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..e80c1c535e7a74aae09205597c1366459b2ce25c GIT binary patch literal 3292 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 W*ZJ1(*!ml7`02^t@lX64mHz{~=f?H` diff --git a/build/classes/java/test/com/example/service/DeliveryServiceTest.class b/build/classes/java/test/com/example/service/DeliveryServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..10a7449fa00ff345cdd6e7e72a030caede9e5265 GIT binary patch literal 5281 zcmbVQ`&$&(8GdJ3*cC^`6^$6I*mzk4Sv1xvpb02c1iSzNHBHRGjyPo5U3O=Q*d#_w zlQx&8vBsut8k;sx(|e8e0$Me_xAwO5e)$9XTmOVUeb1T8&cb4S>hrL3=FBFXd}s(9?|2bVU9<3>oH?YPmKprsvy|g-Mp)#zJ5~>ssc6pR`%BP>Fo9F zrR>EZ7AlyZJzJH%J$+_+B0CvGnS!O+H^sy3%_^sny_LOGiU2|a*b)UD;m#bi9y4Xc zhZ_ICp6b3JmgX>S4&pv0nSCdFA^Uz16$;9;=LBAYyGT$svRAS9{ zcB$BnRt2lQn^SOxSU%CMr;~|zT365*&Rb+gF_L3%zEj27ck25tma@m? zn8(NQSOAZ!IEp76mB|5}iTDsJVN8o<^!=3DlJH*deDPS8*no;bMCmJ{W?IJE*$mIU zwiNLGq)11LarI*u3gEcVIOm0OGIfRso`=N>PtHh5uJ5f)XNC+qq9Trjf_X;zKuS+j z9+L4Rg7HxmDUiHUi_6|rhTGu}9}y;>xtpPlmcm3xDEEYlahzn%W};QT24)E|PjaI( z^f*(k!l|BC@r>9&e_9*UMb@WOJcrZV(ZQ6inS@9$@k;HkE95;)lag+nQSm%JsbGPX z_P&IKmoi6nrRRlI^%6)Yao&EAwo z=Zp{S%Zv;N?PH*5?)Ip5z{r={4%P?1H$fSvK@F^ z#RYtYB+_Vfv5iZ-30NvVA`pF5#n;6Clv)D?qGBFZ_^;?+f`Io_d_%}~zO{dCGyv+P z7T;3wZG4Ab5Z77z3O15Kub)dpFa~Ajkv`!L_DxqJsuN-@z9+on`w9+vkvY`fdnhjh z_G|?e-5D0hh~8(Uje(fn9FHeV35A)2@^Fe*XCo)%b+*UFSxh`i^O=7aA=9%vjksNYaDmnKd;e(9@kAyTwcd3+2kf?vB8JX* z^PD%vCIu_=^gpw#J!3a>-<)~fY0j+7n>nLg^9FNj2`wxWqlJ~tJd03zoe6L1<4Gs| zx*21e?zZAiCSNI;pZ)%^xv6*j{b)ar0X8G!t+IUb_;MauQkI8f@lvp{yYCjR7<4G{ z4DBYx^e&ms|*iuaZKOX!`}W zOqvNdp(l|^4eD)%sHx>nu%6thyiRzZg4#KhqMtDJc$y9yX%($#zhNFHTgCDW;Y@Rm z%K1XG56*I)h|tJ0S`|Oh=zjd=rvnsR?+@6D z@T!QO4cDMpVJ`DlJO-BG3V&5=0IuR1?|?}@^@+(!n5`1_oV|g-;n2L${Lq5XqH9>( zDeuce%RXnZymx|k4^mk z*@F!@f*Oo)#29-{^FaDK9+VmHw6d}@F2e+-aGfkv@tAajEgz!{gLHwI7@lG2qoy4OSZ8;iU+C+9WQ_y^ZF0!S& zL^Rple@279!haR9NhEW`SOGlDtiwF6yp8K`$5J$4C7Q4WJJ5!QaR9q;h#w*b zS|uY}ER;4Q#nACH{G1ssJG5 zoxcIoqolC{l;kNbPf1>H&p0c$=;@pxOqjqKz#e4Vp;s(D{i^X~B+UQl+ zD$2^G&r^O)LS3RrMFHA%+g3vN5hJZ5c$+=%A;EG;N{aVbM7Z+2?8@_9Nw$v> z&tY0pycK8g2e$l-eo~TM%(%5uvL&u$t)4riIA5}Vbm+%xw1Fa`-XZC?NjxV?^i4A3 z=f%U#ReX6z<;-$?$7dV2@F`INpni(!8mss%6~@y9^$ctBS(##$wV0dYHao>I3A>Fy z5llYNKf6HB*+5&$@vd;0nNW)gLjAh6UEiFA$j{<1VkoM=X8ZXjIU!sq`%n!j= qJZM{Nv;qF7iscs@u)F|TAO6DJefX=)VIgbdZ~XiFqfiF%kN*NUEVxYo literal 0 HcmV?d00001 diff --git a/build/classes/java/test/com/example/service/OrderServiceIntegrationTest.class b/build/classes/java/test/com/example/service/OrderServiceIntegrationTest.class deleted file mode 100644 index 568ce2960f381ab5e9d87d39c5519489e1e9b339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7882 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 diff --git a/build/classes/java/test/com/example/service/OrderServiceTest.class b/build/classes/java/test/com/example/service/OrderServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..3c7b767760264bfd3ec937c006467dbd551506a7 GIT binary patch literal 7520 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 -Test results - CustomerServiceIntegrationTest +Test results - CustomerServiceTest
@@ -23,7 +23,7 @@ @@ -41,7 +41,7 @@ @@ -64,9 +64,6 @@ Tests
  • -Standard output -
  • -
  • Standard error
  • @@ -81,49 +78,18 @@ - - + + - - - - - - - - - - - - + +
    -
    4
    +
    2

    tests

    -
    0.340s
    +
    0.518s

    duration

    createTest()0.001screate_WhenValidData_ShouldCreateCustomer()0.515s passed
    deleteTest()0.001spassed
    getTest_WhenCustomerNotExists_ShouldThrowException()0.336spassed
    updateTest()0.002sfindById_WhenCustomerExists_ShouldReturnCustomer()0.003s passed
    -

    Standard output

    - -
    10:23:39.285 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.example.service.CustomerServiceIntegrationTest]: CustomerServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
    -10:23:39.330 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.example.DemoApplication for test class com.example.service.CustomerServiceIntegrationTest
    -
    -  .   ____          _            __ _ _
    - /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    -( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
    - \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    -  '  |____| .__|_| |_|_| |_\__, | / / / /
    - =========|_|==============|___/=/_/_/_/
    -
    - :: Spring Boot ::                (v3.5.5)
    -
    -2025-10-11T10:23:39.481+04:00  INFO 25016 --- [demo] [    Test worker] c.e.s.CustomerServiceIntegrationTest     : Starting CustomerServiceIntegrationTest using Java 21.0.3 with PID 25016 (started by floom in /Users/floom/PIbd-21_Kudrinsky_O.S._IP-6)
    -2025-10-11T10:23:39.481+04:00  INFO 25016 --- [demo] [    Test worker] c.e.s.CustomerServiceIntegrationTest     : No active profile set, falling back to 1 default profile: "default"
    -2025-10-11T10:23:40.104+04:00  INFO 25016 --- [demo] [    Test worker] c.e.s.CustomerServiceIntegrationTest     : Started CustomerServiceIntegrationTest in 0.719 seconds (process running for 1.208)
    -
    -
    -
    -

    Standard error

    Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
    @@ -142,7 +108,7 @@ WARNING: Dynamic loading of agents will be disallowed by default in a future rel
     
     
     
    Generated by -Gradle 8.14.3 at 11 окт. 2025 г., 10:23:40

    +Gradle 8.14.3 at 25 окт. 2025 г., 00:35:22

    diff --git a/build/reports/tests/test/classes/com.example.service.OrderServiceIntegrationTest.html b/build/reports/tests/test/classes/com.example.service.DeliveryServiceTest.html similarity index 60% rename from build/reports/tests/test/classes/com.example.service.OrderServiceIntegrationTest.html rename to build/reports/tests/test/classes/com.example.service.DeliveryServiceTest.html index 72660e6..381683f 100644 --- a/build/reports/tests/test/classes/com.example.service.OrderServiceIntegrationTest.html +++ b/build/reports/tests/test/classes/com.example.service.DeliveryServiceTest.html @@ -3,17 +3,17 @@ -Test results - OrderServiceIntegrationTest +Test results - DeliveryServiceTest
    -

    OrderServiceIntegrationTest

    +

    DeliveryServiceTest

    +com.example.service > DeliveryServiceTest
    @@ -41,7 +41,7 @@ @@ -63,9 +63,6 @@
  • Tests
  • -
  • -Standard output -
  • Tests

    @@ -78,45 +75,37 @@
    - + - + - + - + - - + + - +
    -
    0.007s
    +
    0.045s

    duration

    createTest()create_WhenValidData_ShouldCreateDelivery() 0.001s passed
    deleteTest()delete_WhenDeliveryExists_ShouldDeleteDelivery() 0.001s passed
    findByCustomerIdTest()delete_WhenDeliveryNotExists_ShouldReturnFalse() 0.001s passed
    findByStatusTest()findAll_ShouldReturnAllDeliveries() 0.001s passed
    getTest_WhenOrderNotExists_ShouldThrowException()0.002sfindById_WhenDeliveryExists_ShouldReturnDelivery()0.040s passed
    updateTest()update_WhenDeliveryExists_ShouldUpdateDelivery() 0.001s passed
    -
    -

    Standard output

    - -
    2025-10-11T10:23:40.464+04:00  INFO 25016 --- [demo] [    Test worker] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.example.service.OrderServiceIntegrationTest]: OrderServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
    -2025-10-11T10:23:40.464+04:00  INFO 25016 --- [demo] [    Test worker] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.example.DemoApplication for test class com.example.service.OrderServiceIntegrationTest
    -
    -
    -
    Generated by -Gradle 8.14.3 at 11 окт. 2025 г., 10:23:40

    +Gradle 8.14.3 at 25 окт. 2025 г., 00:35:22

    diff --git a/build/reports/tests/test/classes/com.example.service.DeliveryServiceIntegrationTest.html b/build/reports/tests/test/classes/com.example.service.OrderServiceTest.html similarity index 60% rename from build/reports/tests/test/classes/com.example.service.DeliveryServiceIntegrationTest.html rename to build/reports/tests/test/classes/com.example.service.OrderServiceTest.html index 12037d3..9cbbe62 100644 --- a/build/reports/tests/test/classes/com.example.service.DeliveryServiceIntegrationTest.html +++ b/build/reports/tests/test/classes/com.example.service.OrderServiceTest.html @@ -3,17 +3,17 @@ -Test results - DeliveryServiceIntegrationTest +Test results - OrderServiceTest
    -

    DeliveryServiceIntegrationTest

    +

    OrderServiceTest

    +com.example.service > OrderServiceTest
    @@ -23,7 +23,7 @@ @@ -41,7 +41,7 @@ @@ -63,9 +63,6 @@
  • Tests
  • -
  • -Standard output -
  • Tests

    @@ -78,40 +75,42 @@
    - + + + + + + + + + + + - + + + + + + - + - - - - - - +
    -
    5
    +
    7

    tests

    -
    0.007s
    +
    0.048s

    duration

    createTest()create_WhenCustomerNotFound_ShouldThrowException()0.003spassed
    create_WhenValidData_ShouldCreateOrder()0.038spassed
    delete_WhenOrderExists_ShouldDeleteOrder() 0.001s passed
    deleteTest()delete_WhenOrderNotExists_ShouldReturnFalse()0.001spassed
    findAll_ShouldReturnAllOrders() 0.002s passed
    findByTrackingNumberTest()findById_WhenOrderExists_ShouldReturnOrder() 0.001s passed
    getTest_WhenDeliveryNotExists_ShouldThrowException()0.001spassed
    updateTest()update_WhenOrderExists_ShouldUpdateOrder() 0.002s passed
    -
    -

    Standard output

    - -
    2025-10-11T10:23:40.453+04:00  INFO 25016 --- [demo] [    Test worker] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.example.service.DeliveryServiceIntegrationTest]: DeliveryServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
    -2025-10-11T10:23:40.454+04:00  INFO 25016 --- [demo] [    Test worker] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.example.DemoApplication for test class com.example.service.DeliveryServiceIntegrationTest
    -
    -
    -
    Generated by -Gradle 8.14.3 at 11 окт. 2025 г., 10:23:40

    +Gradle 8.14.3 at 25 окт. 2025 г., 00:35:22

    diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index 1bd3547..74f8dde 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -38,7 +38,7 @@
    -
    0.354s
    +
    0.611s

    duration

    @@ -85,7 +85,7 @@ 15 0 0 -0.354s +0.611s 100% @@ -107,32 +107,32 @@ -com.example.service.CustomerServiceIntegrationTest +com.example.service.CustomerServiceTest -4 +2 0 0 -0.340s +0.518s 100% -com.example.service.DeliveryServiceIntegrationTest - -5 -0 -0 -0.007s -100% - - - -com.example.service.OrderServiceIntegrationTest +com.example.service.DeliveryServiceTest 6 0 0 -0.007s +0.045s +100% + + + +com.example.service.OrderServiceTest + +7 +0 +0 +0.048s 100% @@ -146,7 +146,7 @@ Generated by -Gradle 8.14.3 at 11 окт. 2025 г., 10:23:40

    +Gradle 8.14.3 at 25 окт. 2025 г., 00:35:22

    diff --git a/build/reports/tests/test/packages/com.example.service.html b/build/reports/tests/test/packages/com.example.service.html index 97fd5a4..e333937 100644 --- a/build/reports/tests/test/packages/com.example.service.html +++ b/build/reports/tests/test/packages/com.example.service.html @@ -40,7 +40,7 @@
    -
    0.354s
    +
    0.611s

    duration

    @@ -78,32 +78,32 @@ -CustomerServiceIntegrationTest +CustomerServiceTest -4 +2 0 0 -0.340s +0.518s 100% -DeliveryServiceIntegrationTest - -5 -0 -0 -0.007s -100% - - - -OrderServiceIntegrationTest +DeliveryServiceTest 6 0 0 -0.007s +0.045s +100% + + + +OrderServiceTest + +7 +0 +0 +0.048s 100% @@ -116,7 +116,7 @@ Generated by -Gradle 8.14.3 at 11 окт. 2025 г., 10:23:40

    +Gradle 8.14.3 at 25 окт. 2025 г., 00:35:22

    diff --git a/build/resources/main/application.properties b/build/resources/main/application.properties index 2109a44..7c5c9e9 100644 --- a/build/resources/main/application.properties +++ b/build/resources/main/application.properties @@ -1 +1,22 @@ -spring.application.name=demo +# H2 Database Configuration +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password= + +# JPA Configuration +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=create-drop +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true + +# H2 Console (для просмотра базы в браузере) +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console + +# Включить инициализацию данных +spring.sql.init.mode=always +spring.jpa.defer-datasource-initialization=true + +# Server Configuration +server.port=8080 \ No newline at end of file diff --git a/build/resources/main/data.sql b/build/resources/main/data.sql new file mode 100644 index 0000000..01839c6 --- /dev/null +++ b/build/resources/main/data.sql @@ -0,0 +1,14 @@ +-- Тестовые клиенты +INSERT INTO customers (id, name, email, created_at, updated_at) +VALUES +(1, 'Иван Иванов', 'ivan@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(2, 'Петр Петров', 'petr@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(3, 'Мария Сидорова', 'maria@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(4, 'Алексей Козлов', 'alex@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(5, 'Ольга Новикова', 'olga@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); + +-- Тестовые доставки (опционально) +INSERT INTO deliveries (id, tracking_number, destination, status, customer_name, created_at, updated_at) +VALUES +(1, 'IVN777777', 'гоголя 34', 'В пути', 'Иван Иванов', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(2, 'IVN012021', 'Москва', 'Принято', 'Петр Петров', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); \ No newline at end of file diff --git a/build/test-results/test/TEST-com.example.service.CustomerServiceIntegrationTest.xml b/build/test-results/test/TEST-com.example.service.CustomerServiceIntegrationTest.xml deleted file mode 100644 index 8c9f284..0000000 --- a/build/test-results/test/TEST-com.example.service.CustomerServiceIntegrationTest.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - diff --git a/build/test-results/test/TEST-com.example.service.CustomerServiceTest.xml b/build/test-results/test/TEST-com.example.service.CustomerServiceTest.xml new file mode 100644 index 0000000..86cd130 --- /dev/null +++ b/build/test-results/test/TEST-com.example.service.CustomerServiceTest.xml @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/build/test-results/test/TEST-com.example.service.DeliveryServiceIntegrationTest.xml b/build/test-results/test/TEST-com.example.service.DeliveryServiceIntegrationTest.xml deleted file mode 100644 index e8a9a56..0000000 --- a/build/test-results/test/TEST-com.example.service.DeliveryServiceIntegrationTest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/build/test-results/test/TEST-com.example.service.DeliveryServiceTest.xml b/build/test-results/test/TEST-com.example.service.DeliveryServiceTest.xml new file mode 100644 index 0000000..0f1c2ce --- /dev/null +++ b/build/test-results/test/TEST-com.example.service.DeliveryServiceTest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/build/test-results/test/TEST-com.example.service.OrderServiceIntegrationTest.xml b/build/test-results/test/TEST-com.example.service.OrderServiceIntegrationTest.xml deleted file mode 100644 index 0bcc9a5..0000000 --- a/build/test-results/test/TEST-com.example.service.OrderServiceIntegrationTest.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/build/test-results/test/TEST-com.example.service.OrderServiceTest.xml b/build/test-results/test/TEST-com.example.service.OrderServiceTest.xml new file mode 100644 index 0000000..234d47f --- /dev/null +++ b/build/test-results/test/TEST-com.example.service.OrderServiceTest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/build/test-results/test/binary/output.bin b/build/test-results/test/binary/output.bin index 435a4397cbc94e9b07f02eee45c7cf44d5b1e27a..16e6c95eb19fa533990c38f163855a30bee8e849 100644 GIT binary patch delta 46 xcmdlYbAgSSfr)Xm9-A2>6BFa)H1E9C&y;iSrV4Uj5st+bG717xl4fZbFVOupmA zL`i0)Im%PXHY)3MA25c=Ez*hB?kwD|d@i11KSehK znLe#Ed@_-SP=2PXQoxfBvS<83tUsW*DGR+mnW#Likw1s{$D+3boPurAqXobKU>`4h z&90A{Gz55)Y#YM8JqStoA$Ixx)_&VJ>(4##Hwk~;f)=#*Nbd=tI6Y44<{ql}37a2D zFTo!6lIAuF`3DO4`vh8kBDCwrokn}j_oOE4Hfofx3B(dW6Vb<|~j)^E?}{L}12oqiBUK^(uH)2O!^FGamU6hXaG zJN+nL#_R{MD=?{VVVCq0OXe#&Ww>l^STNohbkT9+aMjm}oRkR0`zTYmo-iufq^*(jx z5bqnx9%dn8EAbizhP78%XkiGcv=&TNmJ}qFf|zxp)%Ieex$w)v_c}eyG3eYvS{Wlt zr?5~;l?B{6o{nh_4$G1!h?g5n%rv4Ug90Z81;Lu`@Q+&`VU*ft#1dgUaynd<1sp!NLeBXxI+pM(~=ihg%yI@IkNo&*fH%vA1J1j&=Vz!c+TR%gEYe375XPLJ-4&WQw(TTGumu8ZC2 z$p*dQ=cv8dyw`ZYaG|JUY3TL4cP$Ng6vLu^i{lrbg#P=}*QQihCC&88)7SL^pXKy* zukrV#b-35Ra~)<0BfLMHtgbqR4LVq=6F!C4JqaJ@j+!UI#neFvh1*BM<20MD;O AO8@`> diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin index 6af6403ff71a82e327ed4ad7500b96130f2c82ad..e50fd31427caaefed3edae937ac90423c73e7088 100644 GIT binary patch literal 1735 zcmbVM$w~u35UnikyBGgJW)Onl7ibpnqF|yPM8Ys#Ap?_{FiT9%UIkY?c=Dj2M1_zK z5`VyNu$^?b({W5P9=q#Rz3Nx>I+aR3>2@uHO|4cpG2^1sFm%jheb=*V=oEYB61v_^ z#2rB5Zsqe`NhV%&2Q?4NhgGx=G}9nC&C|-os_mO38-#eeqQ=3(X}U-9u?DGb#jwa$ zYnuc#ykNd*xSq?n_R#Yki-#2TA1RPxjO#EKDNYVeqk&EfEe!cM7&|5vD?^>ewgw zrjB*bur2C{_$k84=P>^&{T)H?(tLU!2YXX2uu%O17ViI;WKfq*aabIZOrtAUd<(5q wkU!8|@zA2@YglUc^GLeT9i)rSbcq2K3^%ac4p}j%Br)`i%Na(83axJ83)H8Q-2eap literal 1137 zcmbVK%TB^T6usr;`}q~H;UiQQEW`y(T$0+kmd3V2W~K-q!ODd(N{BHr8lzEsMZZG- z#7{6d?MRbSi_0_jp3HgNY-e#b~9m+eGh2 zNsWq1$L4}J>P_l9L~k;BSm~J98YwQ8re{DVQ1t?)R?Ih8?-6uRxgG~<>m9VmxQ@c#;%gctkEKJloy$CrCmNFe3iV$k_y~jTLpIWI z1gQ82kV_H&IpkA>cmajj5Vz2=+sL{TLQEb9XL6aJi5Q3g<>m@zPvx2D%rFmZ&#L+E m9x{0<2_tm~*D#kNj~kdz$Rljv78W8MhDN6KMM8C%!U}VfiH9S&YXMZ+{ezxPwzhf*u?z`au_Kh@1THDf$>-JFX{R+ z*mIxnzEbT(VDz3Bc*z5Sk>y&ef)dI_R2-awBQR^=iPu$bBWz3mkxW#R9>GEQx4`-3 zTH^#ry^PbS7BTK%0+Rv@?Xc^re`L4kD^~@HmmIhcWvm{XPl0kfQe^LJQqtLPlAdue ztr^SxUdKl0t7aX{;jBQ;>o84AVDfB)!Csx5zx8=jSGBy@+x69E5QK?LyfBCb<_Lc+ zqeQwr6~$hhsGzOf?GD4PWFGyh0u|}IThi|c6-)LEq_+5!kJ z?5Sj%J)At6t-&r9VtY8XOrE1jHXW|D*!HI?*$+EAGGfINUN7K~%_=pM; z1bIEdZ00$76WlvbJ5PT>;Q}u5m_Jf_JWYFvA&W77z~w)11y}Ww*MCL|88?uehAde~ znLB(1xLzZ(ODkv#EAJrQ@FRz1uKE~!1!`O!3&09i>E&^qr#Tb6Nvm-4idY!nD-H3v#0cEPEv{eY z`4%((@^CQE#Q~y1N+fU_KN6*bAJFPcM^{!4F>{=rm2#EkTrvzZ7L_vS#B3{nVr+pA z42{6LDd@1Kv0+WMOidg3IZM;nu%;W-w043fJ3pzW38U#wrlzT3O}8>N-ObiCFb1|x c>(sPyf+jn#sitXa%HbEY*3EyQC*&URKf=~Yc>n+a literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/BaseEntity.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/BaseEntity.class.uniqueId8 deleted file mode 100644 index cfe2675dc9a7c257e7c303f21d2f853015d58bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 zcmaKrUr!T36vfY!-Tre+p+Erv6;Wvmx^KSJkRWP8Qk4Yk`?j5wCG9TRF8=venn*N0 z_yPP-#&dVew$j4O&fMwTbAR`q>7T#9egoLYZXPMjWMEh@kye;Hb3QtD&+)qU`_`Fm zhYINzuIGk(3Nw{zGmk8C8RRY8fu*nAiA7eZq*BJ^z!!TBX{!;YvM+ zSrjvvvoMd6!baQg+xoN9KksQ9^EeD#uUl6z4*U+uiw)P)?=Jc+9h^9=9#2Y9Z%rp~B_19c z;i)@NxZk*yo3dtChli}Wcr}avtD1xO=cURdQ?*G)-s$mFrG7|%>R9E9{jA%E;&1a1Asl}Qvwjyw}zjZIEA#g{Y# zL&nRUA$CS9P2idZM}RcHcNrb>w&J=_`vFz^iOeMm@v`uZ$0@AwTcQZ~zzoPUD=?nL zI!~-P6&tw6h_lCop{&hSWX;-ll)rKl3rSUx8zq}b@+Kbg))kZVP^j%(qC7z}%jSSG zn^-2nN+echDielcvXkZ&ws>kP27>n}0+tHnc!leDYg6$aKm3tnL~CHd!q zGcY*?X)tC=Crs(ch=ggLR}{9VGA&$Z+M3E#na(ukT+FmhrpgUW@+cCfrHHATypHE= ZNgT^gm=Fu^B7>)6XxYTg8naT^`3JJ2$l3q^ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId15 b/build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId15 deleted file mode 100644 index e08d4e07174dfb7769f068ba38411f10164d1df2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1703 zcmah|YflqF6g|_|wq+@mmI_4>e9;zUec=m21cIL`m|!saZD}`UNgrgpHS(`Ckq|ZU z2l%6mXJ)r_DT{uYnVr4&+;h&o^ZU<_UjR1nB8>>58e%%)NC?c-IxWNcY_^V@mSMGB z+dVNh&91erjsl4_yKTGc0?|@=UqezLcVvDtjh<^ajSa^!PpWp;O+!O8g%Ri)Ms;K` zCNLd>yw&TvotEVgx8u|;rz?=H4)7$@s)V_wV;nhwSlet_0^?px(`+}4J=d|@4HY$^ zqadT=R?D=TBbdaLhN6yX+z`lIgrxwpUKf}s1+aDxj;xxyTK*`I+Or#N)9pDdw=_g) ztr{X_SMpz7UnR+{PMuj}Rl9BN^jZg&^UgeID%zcz+1xiBTYmeOG564>?3pmkzC8q8 z2=eqb2blXe<$W6X#&Qok^|z)&uUzG+*09_iID~1j{8m;!{PrdC83fW0ac9t zm%q5#jC>v(tDkrQ?p*%vfHEm?k&s7!#u}0!Y3Ey%30^Go90 zVLgd=$Y>c~9Kx$Cp0dW$De?p40`q`TA31|O@u!eg73Mq?zXI`;D#^5{bVYEN=adu+ zUPu!6u)tN4Fu2Rmc;y?iUwDXMj;quRCd_m76vWRJlu-5+yyPyOOeo3&wqABlWf#1N zb9M=zo#Yhfta1~mg!0J`^O*?cvlz}N;GV~)a0MUPd!alcAJ3m9-1j90{Yek=nGE6M z&CW6r4Lo3Hq{-EwPikJG0hgz);N{KYL*{!ONN~Pp2TU{k;T3zt%g1=)Gk)b4)7jDV g;&)t+;QerGih+{)d24j6;OU^iifYX>t`R){3;1y|;Q#;t diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId22 b/build/tmp/compileJava/compileTransaction/stash-dir/Customer.class.uniqueId22 new file mode 100644 index 0000000000000000000000000000000000000000..14c08b3807c80a96356630ed76e26ace1a995ae0 GIT binary patch literal 2363 zcma)7>sA|87~Ll!2?;58u-pV{Ye}F?y=#LgAb1N<3*svNIwVJ!n#|y2(j{-DYl&Uz zT0Vde<#K;>1`_C?{+V<8&ffdGo%!qU-~R-#hOY}qA)P}{5gB9^W@>)ZF+b|&X~Q_i z3*GR{S=TMI8BGfj+Cct+0R`(s}fun8U3i z`Z1s|m4Lj_ZiRl+1jO}&x(QkegVhe6Kve{0sEA>VDD-%`X%vR7O+$Of&R!U}-f?6# zR>ZhiWlU4MjXvDQL=KZhOkrA~|0*mU(Dk~)*g_Z9?$I+-3oE6=0$#;z4s%7!q?T+$f?RIfoBtWcRjQ3Z)@*NsGIuq)YR9{IIUggF;~;Any!;@J`rKV9`B!> z8e*i^s#WIeI}_GUZsOdM!`Qy3x_0=KWw7B3!$8&b%uc&`WP*K(ffR;c(~ScixU!Bn zd%_c!k(^0#_%byL_q!`0t|}X|?m8wwi5Mpc_THsMZGo1+V*mv1TL zSSQxtO2x%Ig4#=nO(|SXX&g`U+>NqA4~8$Gqh^bmLt*))&Hu=3p5PaVBeBmNKv6P& zHHu7C97*T8`M**{PO-`2PMJyU4O?+yn(=K%O(x~Znz7w%&%}_0J-;2)%$6&;zjcwz zW$E;rI>)|aEWN43@{AniY5t<3TYLff_(TF}e)$No$zJDbkmG&XX>oJm5GBs}_{67U z(P>&v$L(qP5Q{Y7OUUmM0aADn0Zr3%ncz+f5AnvgPzG<}Exc{;4&Ft9r+kTq7qn^$>NaZ;s0ex;W4>V S_$q2pY1k)R?~$GTy#Ei7T-V_M literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerController.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerController.class.uniqueId0 deleted file mode 100644 index 8019b0bd08db3280a5e4c22b02376e99f8885b76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4842 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerMapper.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerMapper.class.uniqueId15 similarity index 52% rename from build/tmp/compileJava/compileTransaction/stash-dir/CustomerMapper.class.uniqueId7 rename to build/tmp/compileJava/compileTransaction/stash-dir/CustomerMapper.class.uniqueId15 index 151b012a4884751baa12930a8b48deaeb2401bb9..ce54c579b092245e519da141c145b8868012de83 100644 GIT binary patch delta 502 zcmZ8d+e!ja6kTU>)W*}zh(ro3yXZJII$h0fT3MDtF9kggj7Sj{B)#_9`@HuJNiafz zAJ9idd(VJDFMF+X_F8+dbKF=zrhWf>_5qa9=xPhXNeQT}W~b%|#539Yo&9W^_jbEw z)*srfl7=MaCDK?R*;62!%=}knuQfyTTm!CFa!#NFx4WROhQ4Z>OF`q5d}L` zxeW}XL{$a?>|&2j0{b{1Rnff-k(A^n>`lpGZt z(Trp2tAeh1>3Q{jzynz=K+_>QZOdxJe?2}j@L}F4C7sRbT zlyUx&$Y##WnKN@{CaEyx{``JUfDU(Kx1gGf3j1*s^oB00tZO#N2=hE;9JHa+E)L5k z%bILQQ=}BWs9Ms~>{1E8m7m3BT1J(V#mK2s zmC4RH7xg?#wB>D!3+dZRXtU&!t9VJ;UMuFjazs9&U~n^H%iwlI*gb87$d@cZfnKwx;|8_93QMNgLNM&ZG5mbyXW8Nx{r45m0cEe z@G(vZ%e{Wns?w%VyO%xZfv_kz^z>HOOt`#RZ3Zq2t~A9RVJ={&OKoFh@!}7*u^p6T zwsASH%SuF7y>~e5wiOd5TlV46`VeDISpB;fVfJJUyR_2YvzH_KCx)UCfiRYD14dH$ d6cO6$F(#6XF>P}sIP2yN=Q0!75H%Lj^avn#X*~b{ literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId26 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId26 new file mode 100644 index 0000000000000000000000000000000000000000..301943ed6dbfffc1017ee254d3616f46ab177b63 GIT binary patch literal 1627 zcma)6-BQy)6h2#9Y5^5NLGW)y)OKXZ=!`cOnSl_nOxs`zGJ3bPOIb{IYqCZ94nC0= zK7bG9c#@JfwdLnxC!0NIzw_;Pe*XOZ^&0@zA)kd5fkIt*20vq7%jJg8TPhG*`5nV- z2U>aDcX~%zNE4VkVW-S+nQR*N;R&znEQ}F&r~IZ7w0t3(M?UlT59NO|8cZ|eq{Wh` zJ1y1+BrtI#WMiXac}%zj^7(Qfy{1F7VxfD~*1|RHmKI7fw}><UXx>$Gfb?a>{(R7I@F4ZZ2MWAE?MjW2j68q0AM+u5|7 z@H7FpY1K>u3rU@W1EG&ALPmPyD`)bh5n|`OzQ@~Pk3r=}66xa`bQh-4)ODSKdy$R6eZ-v&U=AG~z&xa5*oEHRhyVLNg2!l_3|T$t n-d;dzUErrc(UyW|(WNmoFXI1mTxr}d!AsnYM>_(q#&Z7vvgz;` literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRepository.class.uniqueId6 deleted file mode 100644 index 1a63c937b205abf977459ba10f8483ae4b637f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2103 zcma)7ZC4vb6n+K>OTt!Sq)=>WYfWncwOjGEhEgFysfL0C(N_I1B$F^@vlDk`QT~%3 z^c)YK_Jcpb)8FLjo!vlo3nDpZ=jG0w=id9=J2(IQ`{Hi^i}*2z0SsCgvXQ|sL$RSc zj`)>#x~_11(N%%e%0F<{cz5%7$1prEJ*gKM2217bEJl#Ekh3ugo1y$45Y;fysw4a) zjzuD$w*^C~_KfdyC)Cn)8p>;gzArrORF9XdJlG{KDmlD?F$;McZ=%3(>wMS9<$dmk zB4D^wDkp4JmFtRzmddM)VjLGOOxT#jC5G`na$kvX0__XlVYr;aiKR|GI;<3k+_!C9 z#ubJkEdtFj*Nf2QUfZZiuU$zx(h9xE4QIm_P1)dDkV98-&BApX@8AZ*WZ$8bHS(z? zT`hcudr2BkK};GnStqkJ=rw1r;oaOo1MM{r3Ra<~J>!d)95V2&Xl#hFl`0L9NCcPV)nlPs?9JfqZA z%1?>ps%ladjn$+l9*3PB;cxLBmn4OnYH)X(`_k-t!XdpY32e5ObURV)N3QovwZbrJ zSXnyg1yV{na!NXnnPSL@IQBwZc8S0UHNPhGu4-;@pLYc1klf1FW!vLA^vV5)=QJ~) z3gxv7R2In4xXU{`OTY|B7Wz85`DX>MvZO1JXcPS7<^uVv`|MfrP9K%@($54yrh zr8~c*l%_YryK#nsJm$uR@pX>6UCqV=e38dvhU=wNfUh%OeoA*Xa`*^JT^g1ftbrb zk+uPyp7|5jAuc?}ThvKjUZzvW%!*GV$cGHXg!JoK~CZVuF%>Tn214o1_%zH zqe6z}=`6!&1Kg)?01Nq?DKHvj+t diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRq.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRq.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..988aed937a65f1c59177105d70b167c2a7ba8f55 GIT binary patch literal 1269 zcmaizTTc@~6oAi^wo9Q5)0Ib0L0K}lrfOr}bkYq5j!}qz_ zGoO zE_W3-_jyy+1F=~{m2$bXm1kBQ^%9|Xml+tA@I2nY#54N4KKBnxx~-4>Lw%}`{LlJC z|MtJ>3*AQj&5WC$_HJe^z9OCDYj$^o-DAu*iL82)h5a2>(hATSukf7XLB$e~~e*cfy~F&e4JHivs; zn}_kxX(DhcK&<1G$K#bYiDvj2;99`oChiRPMEMlhF&<(ti7TlA6BThyhXybO(|9B2 z8MGqj_qg|w9XXemPQWNXIf0>0m@LFmJ&J1l3mX6c literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRs.class.uniqueId25 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerRs.class.uniqueId25 new file mode 100644 index 0000000000000000000000000000000000000000..18a2ce511412061a584007ae1edaac8159302eb6 GIT binary patch literal 1497 zcmZ{j*>2N76o&tCvoxvGtWBFV>|2sT&2mQ(QWZc#3I)-UdnX>Hu421#9K>UR1VZA1 z2jHO)=Srlb|vSL5* z$46XY+e8s1fs}81QlPRDa~g$i991z<<*2muYTuEoCV%afTml;N2@oG1>?AK0PG=lEkPI(O+Z zt^WF}9uebMMsMl5m3C+4GU~$QoX(xqcGA}wkV5ZdbRIY#?2yEWWJt}jRP97bQ~R%8 zEDi-w#d*NaYR%ZsRX3@`Yu1gn6dZ3&`r2D+w|`Y#qn?0Cc`L!KxRWN98*=GSOOZKw z<(NMWX5mP_aarf$a!L+)I&h2L)}VPz(@JwiJA(&ASsDRl>EV^7=OnuYk`)JY79cImuI7!^3aB;HfH}13c8|Q%myHwLFh-sMDvGv{H)Jk2#c{0}U6nu_NMtp=X{10+)0m;e9( literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService$CustomerOrderStats.class.uniqueId19 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService$CustomerOrderStats.class.uniqueId19 new file mode 100644 index 0000000000000000000000000000000000000000..61f7bb2c8e5557392f48d1e42391fe8e617de510 GIT binary patch literal 1826 zcmbVMTTc^F5dO~6cH6R8s9Z!8P(a&qS@D8s5rrB9NdY5-2YK3VPv}Csr|xcv{wE(K zk(lt{5Aa7B=XAGp36+pOY|fe4nfd0MnKOU>p8p20hC&hwdQ?O-L=j`?KQc}Xy=vHp z`X_D*r_2yrv24p*W$4Ld_Y;UCp(3fF7aGHoDQY_ZYSijguDjehu}rQP8m=d5+}ZWz z>6X0Xlu79sp39(_fzh^6;|%Fy8+X@pEc-Aok#1>7p`Rg1iEyVN8n#C%hHQ(1EYrj! zt>HEX8RDMs{TYgxVt3i)vmt~a8;LQjVFY&wqhh#~f+$no`R*|`Wyrf4#&C~n%)c~@ zD%EAH>wux0cS=Xx^zzxy3^SRKKHw74H0zh$XNdTGQbo(=+l^X@J9|c{+U$%ljq1MP zSW*s@5wBuVvdi5Tn3}l7y^1J*G#u)`#~q3`nCVdW=G1L6425}w_%U&Lc!FP~ycDg; zljdkwG#rzEuq3m=)?5a2x*$i8y1UI?Z$r4AiUo$L8;lUOuk}{?*M;z0&oSygKR1r2 z3?t!T&$nke#h}vHmx^I2iI-Sb@k+yM~Y?n>$0_DXA1p1m?g2Ch0!uo8kc;l0;6;(5!ir z!4*u=J)w|V{sabSV@(sDL|UX%nyR^T(&GnRuOeu^Nq{gw%V?&9`w;N`M($&HL?9A< zg-%(Icy9I_qyO_C_H8Z*#_<>#N;S?*%2DBuOcn`w8_rLeU^1qpD=dMP?Ls z?z@R|6ghHJFpIh7IZq*gTcq(D?6>zxQ^)WE5gLI-Ji~J$FWaw>JdZcTeiiSqj?sU$ C46?xh literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..b511b615778139d4c2ea8e317c581291605a4654 GIT binary patch literal 6669 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/CustomerService.class.uniqueId2 deleted file mode 100644 index 53e3a8d607c62e5702d6a574c7c66718d201aa0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4364 zcmb_fYj+dZ72Q{UNETx-3dY3-#}FGogLt%rAWFf;G_X)VffJH1^3RKbI(3!pMCBf z{p-KC?*KT9za|kwLmZ77n$RrJc3ofA(*@mJNKegOmpNCU`IKQA?rDLBfx+1pB+wE^ zQo}ZA0*~aZVp`tNi=~20JJMb@axy(uc3i6{?HT`BAe9SNre(=;4A-((1ctNWy>{(Q zZTq@$Mxk!kumf!Z+pEqd^ioOMj3MHv=&jbA_(qu|9i%ioq*6?&bPT;AchlR7{QrWQOq-9Q)Rjm((sr1bl*v8(;q}XF;G`88OKof;oV5LW+3D(zZSV{9` zGv^wXnLZy(D64ZAkK??CkKze|j`fHmnNd~rE^s0U*3;!?Z(*#+eh=qk8a}RiqS>{S zq*bR(Xqd#5Ktf4>bmc-`U?9u~c~#O1`<*JO4DWQcCNgS4{+tJ$Ss; zP4qj9OL2Ts!)06%*dOkqx)d{f*YYJLkcrkL?^?BIetD&rXC%ApQs2c@k_^gH-$}mAgZ&Bc>D3e>?IT1eVN+>fp%VTTI z$}`>_S;Lf*<>H*QFY0pzuB5V7PA|;rwxOPb#YXpuiav&A}EoP zIhoTLftbM)AQd|Of&)O{d_4h$v{-H5`$9D5cvQO#?_{)uk!Ut{YUHKEK$BJOrk4cv z-aD-&+9s;DJh|1)#1xy$rMwr!xjJcW*8)aT~!LydVn0D9;(sEZyG99=goo%C*4z7PrzSj_&$EHqZz+S;@9|19KY4@JN#bYfOkH6XN_SlTZ=NC_1K~(eO}M` zU##2MgX>TK4p%SO8YYr+cOJjW-UV*|&BhTee~8eT_Q7KrR`iv zp#z`eYLCAipT`&Yq^uO2@Ma1yhA(p765}!$fpW|)G+50-u%&2n)6AuWq1uoE~&{#b@Hg1sK^_<$PX}Gpp(E| z>K6j~v5z0Y-8hAZG0xa0alp%Bh+%Z`&GYyYL+j_?3!KHc(uFT`rYM>Ua{LPCO%VU# zW}$w@&`jlWl}0MMXalmWNcavPrk>ZE;~<$sKV zJ?>#|7ObDPlCFxPCRjy)LiI`bF44aS8IbS{N5y@I%AF+4z0RKTr}K?B8*cKIFF?P% zXQ=+O^gqh{&V|VDs4>tHkgvo=9kqw5&=yl?DdAPoRo^Q1`$mX*eGMfwI%`-vnNlo6EdMfR8>Z|K_S%4FT`FJ;)h-#8u23n$M70E6kZGenB!0QPbuk_4Ev|} X8QutHZ*ukrzDqLjKjJ3-f<6BO0tT&n diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId20 b/build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId20 new file mode 100644 index 0000000000000000000000000000000000000000..b89c1d86e85a1a44b63baff8aa19bb858a71dffe GIT binary patch literal 2983 zcma)7X;T|V5PhQ)ggC@~8nAp z(S>9j-AVMIS70K*^QNrm=hC{MU(+f}%NFP>H2f)7IprpmL_Y=udK^nDz0!@7om%x+ zS_1u^bwx8yvU`rj9oK#+iD6~mRhG7+8=9k=hVnC-#F$!-*^cJaY_&9z#H3nEmTI}$U^ypxjOP6{Sm?eXffS0r&`nRI6pxFY<4Q;}XJHwvol1BHqK@BJRAp#7Jf=a*6Q<$PGSyV5jy#rZI>a=3|yCH~BE! zazXEVj(t!<_$gO2m05KWb8Z$D;W_m{(cc#5sR&I$BXC>AqBwtqkNI8WJj+q#Ae#9V zeLr&&;u8-yMZoQ*fTLFde}Yf_fFE;I$T2s zfqVvA`J@B+6oUB-w(`le;o~XO=cDo@upP)}q?ONNAfKIJJ|nGsmfG;~YQg8D?o41e zkk5E4pKKtXXTf}$6zJX8oi=>D>ht+{`uQBseF-${C(+91ZU7&zSoavzKE7bVtTDhs zvyR;I3pc6oUK?Jj_yrDl-Ydx%%k=?Qe5O6z@W5Vh@k<=~jJJKT6cwLX_#IOryjaNm zhFgvM@yh-o8{8xGv5z!#oVwC+3PrHJ)X|DW6ZpCJ+oFW<4Y5M_ S*6nwy{~huFJEF5GYX1VUM?&iW literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/Delivery.class.uniqueId9 deleted file mode 100644 index cdac88224d371263665e211eca8bc8b5994b5506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1455 zcmbW0TW=CU6vzJq3lvx=mx6`1YP|wpc=5>^6K(ZHG)-uDpTdN$!mimJ8vEu)(nMn7 zgCD>TWjtq=f`!Egv&o#9Gv}Q7oy-3E{o^Nq7ieY>Lp%k`MgmEJy}mbYt50(LairSH z)sDVszm$P`WwrvzXO8RW=K}FYvzNvO(kWzYWMK>JMED-5k#ny63xT}$W&eZY4&P12 zr^**7b>7Q!*&a!E*zRhdZVotL-o_?J%MMha9an0{b6H=sQDS{E&{9tVR&Cj+uxg_} z3A8unpw^)`Py(AB$5r7&C-QVeno`H>%TZ7I4xeXAOP@IbCEfW4`GLTj#wzOnX_`HO z!ds=!yuq>b(Q>N=p{Jwhaa9MMg4Svkc#6EQ;MuTP1N;5&b7YkC*GLjhx zo;X^obZV0nBonRg5MPbiHCp)^NMoB;J2XHIbvm*04h3iD&m+IZmFh#2MaEe^( z(G-PN&6=XTh*+nXAT*2OrIACPzA_=!P%y7N2_wy3p_nEOrl^}lIJr6xBI0Jp$ynH> zebFLQkP+w_G?)yzhwHRn&F~viU+6N1MTVuw3~%7(EW@WH`Q@a^Zjnt`pR)0;h8A=3 znP)qa=T0PWZFZ1j~^4yE&`D^;Ze(kQ|;aQsVg!6NssA6dR0Ub%&H~;_u diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryController.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryController.class.uniqueId12 deleted file mode 100644 index ec49aaf19a146be57552c03b36b2d547385d0723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4849 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 ALI3~& delta 437 zcmYLEOD_Xa6#njvJEPMpA`Kgos-Vftc*cS$r7eAUR6XjsYBCKALUjBEd%1svNV>3) z*xFj#+u2xHiE}5?*_?aMcfQBDcRlaIdi#BT0g%J#qg7?;_*pY3+_r+N%jS&*6QcrS zNHD}(5pE)Ve=%gYEQ~`}BwN5iF9RoW#aHlzz@(CKl2v^9!(3xtU;&=AwHaekUbDs1RYnXfh`=6z{Dz=H;jSnwHzhyAQ*^0=UO0MTamg+)DAgUabu)&ubT|==@eau&Flew~Jrux~1}{V;!0r zQXCOROTE#`Xj`h+wKGk`aio(X#W5J literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId10 deleted file mode 100644 index c7538c7908a35a1f97874787dcf6c9c01a4c7e86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2139 zcma)7ZC4vb6n=)cC1G3ANTJwLYfWnc+O7CnLs3XeX$=JlqE`JdB$F^@vlDk`(flVr z=s6xd?T7vVkH5*|o!vlo0Vz2rJ8yTMd!Kusz5DmSFJA#z!jD-DV9>&ljbV&16zZz& zh+lcT;|j+Y9TiBe{I0XcJDW!dLE!zArrORF0;rJlLfu%2`~*xP_dJOUN_aKHoJ8d7rzX z2pFyuO9@{U<+`G-rSi&Sn80NVlQyPsg<+zP+&3beK>LEX8Lp;q;$5c}9hUQy+&67p z#WjW@EdtFj-(%=jTPyeuqRV2*E=Rt+@&fMQL->=V-D|8E|N8; zx=G!24(rWusU`H5&+B`{`DxhRF_BIj;wJNv#T_^n?%MbO^9;F&aKeC?il0O7QWY;J z)49I$oN8DuJ)>+_RD|NT zTc*%WdX~G#85NTeol@YV+%a6#$Fh-+6`7z)esXI<@2bWI_jy}Tc`49LO}0F)L!Sse zI;X#d6uD!?DKCCx+?GkQCY$+cJF~w2|DKWY?{3PqWnE4pzI5! zyB*=Al#p9iO4ED9J8`Lk9OlPI@Ku&NV%5eM_%es53^$4?g2zixdPa9PviKUC7HT%O z@D0PwzV@ZJul9sfjfzB$c$3#nQ)U<=UG!J~Bn8pC6vws7y@o4-LRG1~uv0!Mw!}{A z;ucX(nxFqLc6s*QUN?$V-$Sl&*R4tFeGK+v&l7&da3&m1vI}wF!K$h=ZCa%Xk;`F&;AAW2Tca>5k1W@kip0Fv||H&f=_A1@EPtA zh`Ia|SsT!q**{?&;KB>MK~3f*rhylj8KB2I48M~>44TIf&Bu@@$SGXFHJTd-lQBro z0m0#Ol*!QooeeWu0Qc!XfW=(ah>ebn_xrSCyl3VP@b2sZ-v2E!>W6P9&@&Mx84#%@ sEEB|V543^@(Y=RQq0tb3MB^&`4e@oN`WR2JhHcu(($2T|9zS6EKS>;3p8x;= diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId16 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRepository.class.uniqueId16 new file mode 100644 index 0000000000000000000000000000000000000000..3eb6da0ec69186469d33d27568fab579a387a890 GIT binary patch literal 1514 zcma)6+j7$|5M6~dp%+SN3n5%hX_$0i;^Bb@2r$#6ZYgz>Vy7@XDzO^WI<}GI()=0^ zd;lNCu#S`3X?lB*Eorr9kIwGu@4w%F0AL+n~t>gD}c0zlB%XGm4UvlM(zP`a+ ze#}JQI^D`cmcYUxJ*K)#y{_JDAF__hLyo{3UvzaD2<~+c1nse3zBtkys;GV#&@}4j zfF^(hmJhh+)cP$!J4fi-2zzZN2$aia62?{$Y;`T(3Ke(tW}vw5QMZbGcA5I&J9{(= ztC)}k=G7UvX`6RFszSjCY+V!jy_wd9d5WtoK|cY-JaMS4{>S!SI>zvP@-sss85f5<&w8uw(fa8a=;8B z4c)wMX?zK>+EAgXW9o*Osh(|^M!lsul~^*3O3fJ-Wqi|DTD`g7XqBA`ch(|v$44UC zrq$flMqD*V+p?Pbds^*#g4DD&3@h4+9X1TRKCH!|8)vfCuVcyyWIKc3+Yy@y_-~&K z%Rp?0NyV|u@ZOray<=#lcadv}z{jl3_C5dBur6y6t&P)Lkki!(v<-`K3AqUoQeTa7^K&n8g<^4>utL z)3}<#YvOMfM+WB5bPMJa)9q8!0-El?BAVi(ORzk!5x9%E_aqeXz0hjK`7-hnz&M9q7XMC8X)Y4_67#p8JxK#vO`_CF~Ox< z{REKEXb}7Wu4cZF@qea;(#~|_qW9i8_dI^*ar@`**>56xMh`kDLTz!1CaIlbf_irJ zeO)W+=9cz)b4TWtpx6_`G}Kc;ZP}TP1l^!SoH~-!Nl8KJyj9ZVJH515lv+Vq+LA09 z`_evGeJiM2*?NB0Ft=99rA=uI>RYaRUsE=29<#shB&FC{XF)p3Fm+{ECd+%1)W`Ce zqjXhvSTvBNK^7(RWk*>hX|L!dDQI}LY$~H9Hw?$vEXrr5X~6_;96>V(x~tnt*Y@?I zQSilD9#^0t=*sAQ46=@?l(k1B<~{|hK8PV zzq;q_;S4Z8*&&+*l)cZKgrMl6RX}d3Wy6%!o~-LA7dOVr>%|S-Hu$?HjH+z|^&44k z-D8yOWj5H<|C7vYVEkT5wQUvN=r;PQq>cE!TT-nz4bniCyLvgOwNZkq6I2}x;p0f% zaJy8WHwa+dAV@%C&7V9$30z*DQ;;tkz&=NzhIFZaFkeX$ZPV^iy3F;a3vWy&crO4K2K!pzcUecLZ8^QbFC(pzbJj zfDiu@SjPaUVHeojb3aI&;1HoZSoxZ$pE6jJRRyGc7hh~V0WCH@#NLiQ&BnRe3dM7C z73#{(SEwg99Ia4)-D4U)37An7DuIf0(=GTP_Un|v&BLmvS`_&7%gPk#TG9B#C28|z zoN$yTaqf*mm7qkp<`4{dkEXCTW_U{RV_aU(a5OZ-Y0B0ze1x6b9P_iQXH%`um~TB) z)wm*$)ySEx9e;^F&rB#!S2Is0lqVO?)78u~-hzjRPWZI~57$Z1Y$#7pGtWdQ&s;c9 wPczSC3m)#`6%Y4J(0nLQe>2ZiD9=JT&$a2R_G`KY56{vSPj!AYP(|qeKOH-T)c^nh literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRs.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryRs.class.uniqueId10 new file mode 100644 index 0000000000000000000000000000000000000000..db5b84bcde42502fa0c052ae2cd3f8266ed9c1fb GIT binary patch literal 1953 zcmZ{kTTc@~6vxjL+FDpxXrWN3+`P4*toIA334xfHR5XITFT0bn*zS_;l<2q8L}TKE zAHWY~{Li#>+sW+9oSk!<-<)%1|Ni^^hluv*)dXc|EKlPWWhuvK=G?t>ot7Imo%g5b z+!Ks)FM}`;uNjTi>L&%dMuj|0STso%qa`nDJN%2=zG!jB7m;(oTfrrdzkcj6$^4U6^Fc!L=21aFIrTR{*ylMh#+)D5QQ?& zyhUZH&vk?=x*e%nw5TFgme=iwsLkU;x6P$t*`g|4XH@WF?h5Yj;cAuMaUy7QrxAH> z>j0Kx?9{2N7Okm>?uCC9F}@%9oRQrKLf(Tuc28T-6jl6*8wYaVSB{Ib0EMVF(#y2V zDBI-XElO3a)rYRHiUnh*XDropTm1ypeaFRF4Zadwrv8*PPzDceCyt_S?D02&?4g}Z@3x#;TF2aE@J{krG4J@w$iY<-1F0ki zP)SUkk{B{2F*=Yop@o#gx{jR#$sn_vzleQTZW~yo8A`f=)#`uWq+8fAx=nYmjt2jr z{5Kdglmy$x;2PE8C4+Y$OAEX9ytR8o|58uVC0$8c@~X4 z56wJtI!`5qN6zAar>uA$8F?0To@FD?V>8c!&Qnd{k#AzaQ&Bum=qXhCJTK`yD@LAY y^xQN*OFGYL3Xgo71D>kld12&P(RtR5JUeEd6`f}zg-8A)20UwuXBTURUj7FugB>~m literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService$DeliveryStatusStats.class.uniqueId27 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService$DeliveryStatusStats.class.uniqueId27 new file mode 100644 index 0000000000000000000000000000000000000000..ad46699ddc161325aa9406180e5d0303041bdc3d GIT binary patch literal 1826 zcmbtUTTc^F5dKbSyKPx0l#3z?D4=b*RJ3OIlD`{4V4glXwRA1nfd0MnKQrtoc#i@hK&S5=ur?>5kZt;;81I7xvFL! z!Oz9U$t7j%5yfinugAEo4jf?xpiFh zeVErnR7+{F#qG39eV8E;($S6fTQYwZp z%n);g=gP2?E?hIWd?oylkK-)(byX`p7VJ5K^fwua~y_~U}+4qDUNu~ zGu+b5a+TXN1tE?a^?ac57e~Q&+&ixGO>XO!QFnwDblIqCwjEUXF+K;vc0uoWPp$5# z+os7aHzcRl54Bp+UJ?pk)BLt8(IxgdGX-l56PKG(le{uuiS|l}US9|)xyIxIkxPco zC}`8*4t<#*X-DoxI+NL-VA;7-DB1Z_^qr6@gh}5Vc!w#vPkE-ei+d!IlN*}3HyJ#H zX}ZTlq?R9nLE2d}geQ@f=#-{P_KfuSPS=YFs%PRO4AM55?czQHe7lnSIPMdOL|>&- z)+3gkJHyz&{6{^T7Qq-EAWaEKS`kJ9Na$@*%8?`~MY2DjTt+D3M`To$47tdRg3f(c zagHEMZXwKJ-aQv61kg_!ufbk>AG$h*rwG#sEa5Sp5P8}D5XlR8N$g+Y4c0OC7k|mJ A#{d8T literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId13 deleted file mode 100644 index 77bfa5154b1e51f0296de4bf9c7d9e2e2cc4e84f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4523 zcmb_f`&Sg_8Gb%)yDTH(2BqQ+6;eRrf{HP&wQ|wM2G9V-YTCwO8E|CTS$1Yo(wi}D z)1;TQY1+mnZF;}jmY9Hw4eif8{bBigdQMNDcV>3k0YpzvIfwne`M&q^yzl$G-#7Em z|12&6=)zJ2B`6J{OhY*;6l$*OGkPqkrzT?OMz0zPN1@_`nKGS|3Z>00Bb5lFGK7eR zDrgG(6V_DBxUNs7lSa%oGBakvi1ivtbH>Qb4tdWC(J_Bz&`4Xh=~$Urg#&%Xx|zaG zL48FyE?%oOY(|Yjb>3LNo=zJXVh9+Ta#ssRJfV1m2BI3CkPxF1j;SZjmyBV{ZxN?Au5=rZZazCXD?Gm1jo=+B*)lAL3_xIfV^3CNNRKAnD zxBP0uHU34=fCIvWHihS!y=Yu63^^GyH4*>cR$4~FIOqZIICS_(=g~0Q6|~&D0y4Kq z|8rp+QmD$kNm$FT5cj<>jwo#F$h|GQ0zY@BA^#xNI;!Dm98)N>^%+CqRC9m?e%`uu z+c@o}Fy8WreW}!O4RM?x;cX{l=u@mkprYPtjH%!z8Fdn$4B?cFZ)}z( zV@zkwj4@!P2C~ACCyP_+i4oZ9j*CaxnY|iL6|1#x`P3(&+=majb~E{$Fx$h zGya5Rd=_Uz__T)S(5Fzhf;bQvxk&2@$9%9Zo7Y+^_7%`~{S0V0C!JK`SkeemvF9}m zVn`t@4bwe)c1)qUI3LWbP^{SQxwJ%}Czv=!)i5rxB#k2kMGyO;1n z2%ppNd3-@(Z*lLfn_|LuERRwO@nB8H9IMc&gVXCXE`Kz-o-b?AF{%)8tU<$0TPd4N zUS)LE39!m)z@<&%D2xelXyt{IAsxcBh78zB^~IG5!esAF7|w7;PfU_O1KFujxfE*i zty_G2$?=xeFe4bY*sGPq<#i3S;;)(}dwDsSDP1TiieJ?5B~h%VVqnX{S2TQ8v?{4J zceX9MLnTJo}4f&J~kzn*zok#wNZ$^c&6< zYwWz9(WhAAjASK$VRtC(3Yb|&xcGGqyGmpkItNTB9N6yeQI<} zZ}fs_aLm;RbWhdd|DS!Bq{W)j93Q`(@mH~9W~P)6~NtF#npBnT*-wzhODEX(Q&p3NxKG-InF>!qn4V zr`R><-dv6sYcR^;ukxZgr{P!l_2vrPiQof#7{a`U1>9BG=bp#ziDsr|tVtu*=VptR z^l?4my;oPU?^d4vRa`w^$#eXyo*GLUc4MDqO=i;@zuE;9hZ#_@_~UPSE;rWoSy&uo zkDg2pnU2BiX=hU@Bh!=AZQHOzSmeR9CMWBK7sB88^1HDpTgS@<_Ob{idaTm0Qd1&W{ywW#DJ zSk09v>hNu@HhAjz4!+ALkrH>xor%K|yuo>8370_xVv?UQ6cF$4aVFloTR%i-0k!v0 zuW$>U572Nix-Z%oeKOj77p;Bn^Hb4Sv?F?$&;25PU;&*MWYQ)R0bA;Vt*1?(p1yWq z4|XDkT{y;%mo7rh1Kxvu_#VDb6fp+!CTEhXZa;`0a9$4eZ>lKyn&PH_eSr=nuBHOm zXB0T!bnzZOabXcXzM>40yT zbR-T(I0~+MKiu;{XA2l!@ls7$paq-IO293yhi#sAp)~dQ5q?Y$Qjl`R2f%atHWzQ< zCw`nMjskhNxMP+ty6KiI{{syJviQ^jUR>?^Aej*(H`-m-t)7K~>)m(<@6wB~=cjJE zw{re7&Pwxe-l0oHM*Q55{vt<@nO?Eax3(=J0Ujf3!al-cce0R23I!G(t}xOITh;_c zfsv8`@#-bv7xey1n0^v2bClfI`MDpz#isCpTrIm@dYfAw-MsRiBE7q4znk&(7A3!~ zfTGS%zL1MN+L{lWAZkkFu%vq_x=>NF-`U30rxxJIcx?eM$@t|3+>r5=1$;x$JiI7g z7aV1`Kg}jQMjAgu{vSshzYnDgyaII=;C1>1qGP{6Z7k4l+ya&1x6~-X@9=w$(z}1) g_(%Q=!`^2&f5L72*`NJ|vwPf&Q0_h+;3I7RFNJjN$p8QV diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId23 b/build/tmp/compileJava/compileTransaction/stash-dir/DeliveryService.class.uniqueId23 new file mode 100644 index 0000000000000000000000000000000000000000..8472d9c0eee0f7bee2cc5dd6ddb3cecc097bc0c1 GIT binary patch literal 6205 zcmbtY`Ck~J<^)GMk{#46i~rpMAK$m1{hg(mYrE5>5<;| zo!(7bd!(mnn>J!FY0~>h)BA4I^AG8#&pR_aI|B>qr$6k@%=dWT=Y8Mjec$iQbN{{m z41h!UPXaMi#Ia06C8`waFY42JGNWh5k|!=)G}4Yj)qXQ;ItLUg+B=4-u^iQLBsA1O zQ`nrgCX>b`eKMCZlD3hbHq%D(u#qvRjr`1@_pHz`;*Sg%ImX zON&#YwN^tN>J@5>!us@F&d3u(M9`!=8VK$4#qNh>x1tkwcjb z&1moFb=^~N%uKS^v>nQQ5!S@9R>L~95LBSA5wAb*Kik@E4PIiR+f{5?^s8&j_EKasc1|_94lb(z!U=;mS(tnf_azQFVmRI zo$TB3O@TIErHm3C9{R?3|UgjRi2~Yl`BCfV5K$P&h7ByGP;vs5y%i zhE&9?h&Zvi6q$vT5f=1n=tDm(FfNf7w#S2}ay%H8`a-m9=NlHBFd4r@4v^9qe2d8R?sJuU&-!nj!%%(gdd!wv-7*sNA~iJBAXtgqb)V)bMJt zX>Hi1D49LL(NHDOjn`^;9UkJWZ8*_cg$R+0fpm4gLBktGVXf-~+cC4c)HV_LW({u< zfwdHP*a%Hs!rL^wU3OJ-mltT+@JP_vH1hrWq#--r zui*o-qmDbma|)-TNxx)Rqp4rEKBhW`SkHQ_5!R);UNdWW6hEzB$Z({g*GlV|Aw6%( zvp=}Z88;c|Es?si2uo8u>+~7UxHWQ8&(k)?$a8D;pgBf&7V=cFvq-3*-S3YGj>Onb z9iYTD156il(ik#rldukDvlerT!J+7Vy;goKY3C%hM@8cUR(>Msvx;pS%i(!xUdszzq$qN)wnvXYGpy zKjNGD4Jf{1?ul_=N}*+OCr^ndifa|tM^?^nR;*sq3~7EK=n5gUKb5v>uUlFA3vdFp3)^BS(8t`0^ z(I+pA=xycW+qO&L!D!mudT63Yx?2f?95#tu;b0_*ZXE(G_wDrZv~8!tnW$Znh)hMB z$9$hgEsE@vS`+t_uq-47twKI+95tn%H2QuozO;4;XLy_{TeNL93&V1lFv&sh9hZV@ z`q^;%3^|5Lx^-KYW0N&GugTc;*i=`E!}U1E%P$jrq5YMH@8bt`RrrlO{Z_*>c(xwT za^MdM{1JbOG?1}{Y@T{yY=iy z#<1IZEo-8XOD#;9&`4zCY1$iJe)E%_%BA;)UtWF5J$fcHXgUU+s~yi~jeJi=w{1y` zRY9~$JrD7vd^ykh;IBbGdho76zC`f4g0DQ4_#kH< z=F?eTr9IbmUW4k~eiiY~9apj9aSp}sA^taD8ULI3-;8RkMlC-ce3&Dx-Zp#$ALSDT zxN4MpCyHYD81JiN9F|EQ0OTtMH;LB!c$KBwI-fv%4l5Pruv&pnE6zTN^=GbQGdQ#@ z#=qMYzR9IwG%Z+#^)zthJS3khhvf74 z0{07&9IxW!RA|)5uja*>N3r17&>Cg_Zoq(TJ`P9hw5| zO};OLI)Wph!)3}By`E>TQ2%52y6=b)UL_>!eElzvaao=JaDq;{QgMaT6(M5oBcD^W zY(LiEKqxBf0wn8vB;Rm%sx?L9FY{TbRpjKfuUw))P7W&ck`-j-bqviXqlciGc?9$z zfg`l?DAwW_Hu7H5!{bJ)k0Qb6$MG%d`!?rN*<{R6xPtOA%)iig-?}J$XEVFT%q5hD~9Qcb9BXdx?(tlEbNM>!^oZvkd<}C zcQ8g5Nc!BttJs_H7{qS<7@xet<#|GP^?AiA;d^3!k*ZHfPo*Fcd4NWX$i}BIeztQC z7g;3dz^{|n;FQXNC;Vtgcq0qP_kjACbZcMM!-OJbX73Kxmh;V*EIM#ye>@zvu5c{2b5wcfSbkevRMZZ(OyOE5?cI V1y+Lzwyqbds_}RH6aU7V{{aovl~(`& literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MapRepository.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/MapRepository.class.uniqueId1 deleted file mode 100644 index cccba4ba59f2440686e76cc1775e13b7d5534de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2867 zcma)8Yje{^6g}&hC>8>TKms&CN&(}<1@{dhX}}mLB!*C8LPK9Dw&Dn6$(7`Q`}#Zm z(0*uVO2U+xPQP`gKdRHSdN?wMl<|zTd++W&=bpWH<$wPD<4*u3{HP*@0R?FdyD%s) z{7~P}iea$9k)~D@;lv`fa1}rHw=M%<@La3 z6zqEyGu?NZX02EXUKPh~s2Ik6nehREbbfwvS+X3{a1e(CGG@K(v~AyTUy0rqkmzp+ z?BAwZa$UVsF+E?3a74pV9HWvOy45y3fkXMpL|SFXvZ%D_*fS~)<4sBIxWM6L>WMXz z%QEH(4JUDmhte>3M!9Hh;^1Z?h@?ruX@R53BjCZAey4a@_l&E-P{kys6cjYPjWYrx z+bJ!!Bt_j4P@T0~ZOhVEEqOq%h7Kwu-p1T=C~9~I?+WZ9>l<}}1F;YR%O&46?FJVP z<9!Vu;6s5d7nbb$4ZG$VO_B|&a9+hZoL4Zd;R0rQiZ%?v0t%#FToV}O`G#WmV&w3# zhB;g$880L=n#?5PBE>G@vVyXPE4V6fFc8Eyn?|wX)O72L?i*FkNX&K~3yjAZ^)Cq& z_(a2X+z`+RT6PWYu9ukAkqG-GyCj7i7Bp03gJ#>UdIahDY$NHrrC~9Sc{gw~rYw?A zHQd1xskPd~IG@Zf?CzO_GLa=IR%DW)?rK<;^)|?Ja5fBS`b@(L?hEYZCE)9(?JXD` zsrO4_-dEXRUugIeU$NsneS>;k%2#%*L>BPQegzK%PAAtSE|jvTY&MZgR1wwc%p7YjU3TgWl&zSyajV^2HQZ|049pcNh1ZHO8#WSq42RFD9ZK>@&t2hvde~9oeEi z{T+8jLcVT)3#3f0AL*Bj9eUI7*PZ%p-PM~0Z&qq?CRryt#EmHphF6uqM2`f07Z~#z zVEO`kmVCYTh{{H1FqEfxGH|JN!y=6^LDhIdIlOSvQ@t@O)_85Udf|U?=Mss>-SwKq z8Rw`jIc>LQTr=gxI?_`VXXU+x;h z$Aa%8Q(F*I&!MbrA@dX}hr=uC7Dk?8^f&qkQ0H?m-ylXB8e{K)!I>8B#~K=(t@l_= z&IBIf5gACd1@4z<+2=UCGW9#uO^k10;#ZnN07(njmk6Bg3oI=%aG03I9ZlHWF9Gfn zD8+YH1}|*lt-p|ahWv{FV*$WexHJObCOBv@+;$Ez)He*dOVAyox?IM~Dnk94Z;3ih z#It{6yg>BPO}zIEA8lf`@C=tWaqTB4bkB#gn-RaWG~K>eko?kt!pC?%z&M{rF^XfD zz;T@5Z;GGub2ydYJ>BI!4G(_AJIqP?q(r1dUz@%Sj?+j@3?RzIqajrAG2Ksakr_w@ zt9;8`)QDmA-uCg!KZ78Z3;Svw%RD^T2i&J1hY~u453u1SG6P9v}vt0%+ME8beM}^{jhwn)_g&+O{ D`>(D| diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Order.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/Order.class.uniqueId5 deleted file mode 100644 index ffa0837d2c3f238441bf8e7865dd59866147bce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1400 zcmaKq+iuf95QhKF**UaL>ZG9%TF!|%_?{pnC~y@hQmWj$$tpE+V&pg#eJhZNkhtIh zcqqio+D=NcL6-L5nfd3No%#Le=Pv-SU=@)yy-Lw{n+FV5t%Cv7J=hCq~XF9g~Vc<^3U4hJrKav8w zJ$EWU%qQnEICIWD`cv!qL&qC9fy?*!XC}OGN$F5WtO_H=)3(mKtVd^Da&HoL1_FEU zWq9F_K01Ljk)aHTpfr|YA}Mgx?&xF_2ZAciuKOSVACYr%f&^=8g2W+CkX!}y2@-pk z6Bv}BA9uzieob!-f=*oO?M)AsDfaz&FqH3H?paaw;2BHd4$V!9COSN}3!%CeTlY zxrG+3|5oxH`LAS5VO2?0Tgh!4#g#m#opa?>6)X1W9cn7N5qT_Gb1^G(WodL2&oOmi zlc%!IV`_Qs;+~GDvd&ZA!o!Ug>Ya#(-$>v-9%y)~>pTZqo`-m(Dd1-s5w~#+$xbmF86=*tX+NO6(Al2J9)r<_9HDq&0oR`&wmk6B=$-Yp#jt+FvLDw_9nk&#= zylu=IdCRbGW z+hf$NxH3N|FKYUKH(@QrgP6q-&T2TPV|b|=>gixr$~!f~a43_{pqNw_M{7Xi21Yau{PU6T1x!(Nzl#%)<(HQkh6Y35~|!-_b$FsC@v#ldS=1$q)y zUT{o%$gye_TXEWc-L*vBf5T+CW>l>ibTGv{LZBsTbDz2;QR|Y%0PxzPY0IE4CzUGI z?yBsjjH;>5;bq#JF$sQi(#Y|9n?8>BCQ<7HDTx?0W8ua6>6>C&N2NF8lrI`pqW2hX zVpM6ZkHGEB>?*T|PPMpk{+`ucR5n{DJT~j7F&83N1|v6_(`17YLufEMGPQ{YBYHs@ zRO690{ZZRYZ=?OPVHY;6;?HC-1C93D&zHtk&l9qQ3<>osObo(Exh5YhrjR9VxFtu+L-$d;umfj@IHSP8Q6du z{8i480UyBNs)VP>rGzc6X|A10IM@FeT5jKCwC46d#=0e4>nQ;~KGN8XW7(d>hVK4Fbme|WcLN?^O?cSBbSPXYKSu4o@4Ja^FP~VwOli)yvOdsM$FwuV zG~-K(9X^mojys+OOx#WY(7F=9{zL$?ehL)&WdK@30K4J<)FBDLAp$r;07nVn*h>He zg|`xb%7Q=z2ND3RTM6KJA^;msn1NGa2AWg`V%4Lb>c9YOMW8peo-&ZV`KPtc+)@PcDn-e~8BRJol}^RqG-SMOW*{ee?-le@dfJNP>)SW?z7h z9)YvW{WFdJwDCwRBiDTUBC6|Un*U)C`6oFYO~Ezg67fzkGiv^{QhmZO95x(Fl%iWjw I8sB2mf0xfD&;S4c literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId17 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId17 new file mode 100644 index 0000000000000000000000000000000000000000..2021deac32595a1a10a48c221eb086ed22b4db59 GIT binary patch literal 6698 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderController.class.uniqueId4 deleted file mode 100644 index 8f0da08171bd52101a687d0c268da0fa73158b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5830 zcmcIo`+F0|6+PpZki0zN00BaXYz(oD$?_(#4Z$`B+}hZ+iJOoDRAkcJ){p*%AHPAMDu~&D=TX-gEEF?mzy0 z{{eu0+>4+N^&vDUXhf61nseH$rlvGAsgA|Y>2X(}sn0MC_pm^HN9R-+D-aGLqM#Xy z!1lP6R`rWoI+N1XxMjMwl}hQhI%X$yd$80OP%JqzsoS$gTo-5?2`+T}VSiO&PHzOO zusVb_3LZm?K=k7l2!zfWW}-ip5@_k@9Px-`T_dHA7>?_iTdQCl)(fnV69?vo69OF_ z{zQ-Qq-z^yvNyPPEaMuMsik^b=&lV4He!=Nqn62}<^-Ou*ye23jLXUDvBCrQ+>EC} z*rMQRM2V^lsc4o?O=}r}y#*K^-iHlUMHE3BwuaEIU>mjzJY(5O)yYT(XKgL5U$E>M zb=q|^>V)oOEYs14OxJJ;dxdGa$E>VL`aNV&Js3(~yv0xk^y~>?kAl6}N45Jx7|c4Z zmDX)3i1whBDuO79>41WR(uU&Om~=Ha>qyZ)ub>CL1Qxe-%_XpX9TjR%xR$T%AfLGwaI9JuZnN91aJ9IIwdrFtv z4k|c`A%RFtOHAnJv%147aIp69v=3N`xuQ%WID+E}PGFb@le#;qJC2s5SJoDjCzyK8 z_#{R`7*%jm65m@Rz2J@l4KeO7BQdVvQUGj?!=RO*)zu@0sh`ZIW4e7xi={Zy zGGfKG)Rbl$vR@c%aHkE2g{*?d(xsTfTr;Y>(^g_!lV!qXN|OpB<5kY^q>(hKWSiUV zEJmnQMf)l?3Ci^_?QWdNvcjbGDZ?>{uis>y(PTyB2K%a(nG1SMjjsVfU8&8qNJJ_aHia zl*Oh}4JEZz$l^d%gwn ze1BqVP# zHs;=wDw4&(KZgRSBa>Fvj_bz^d9<%x^v3k8tX7Yr;6dARoH5%-8YU4l^W+l`-gUCv z_o!-0ULB?>^Pc^?5AGFsu4YbreQ?XKay0%ZOTF7;*&ofSmN8VXED&4A$DHo2mUPrp zn!E@!n7pe9ggrM!`^R~kY)@aUP(zs8(>gQa&Nn!ggrR>t7N+yX1^ zfMvOkYik+*66CDGuGLNGTZ7*%Q%9XgsH3#@hY0?NKZWpT1%Cmnf8gG2n6uW5u8wHw zSVAKN?W`7eEqQ5a=3T7Z`)5$Zg+)H%6PlSw=}!BIWzA$Wy#c)zFSO-be#JsrpMukC z|Iy!a`L%`HvUiy;SRT|;sY%1t89rs$H2Fawr8$nyz^|%&mn8YXD?!u$&GS@zcZv++56o;|MftO}grb0ayi5zx3!)_ZtH@Nwtg(I$7T_b9cH4A4$G+lX;HqHHCtsBfr5s}(ayakDU~r(tpnICaD1VN3=;45Xa?ZaeS$W>fm69UA%CUkX zzlQ7Vgdx_md5eEC%FTQ|@;YBjGf%Mgk(>W?aoTJt$evY z!u2vYH_;;a$s&RwJkBg`W!r}1*vhXCQqWRc5sLSl6mLC8eb&;eyGpEg6+|w_B>%F= z{goN6EO;bV^hmhQ6MWe#-ztgi+oZZk^xr9YhtVo}=dn6YlsORe(Tk<5b~r9^7PETt z(B`+XY5||VhnEF@gXUsxm$O=a&jrR9hH;Pla@qV{e2=pwEw1_(Hi+XPI_?bn6}kNV z60ILROzVf0+HJs(xV#Q;duzHGp&xV2PrUs9DSpP^Zj@}igP(KeyAFPV_Z<8Zzv8d5 kto)vwe@%A3g{;4u*y|vyTTNkpMrp%e+1_R`TfoNu08JOQ`v3p{ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderMapper.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderMapper.class.uniqueId11 deleted file mode 100644 index 46689c479a47cbe0a838389d4cee132e1ebd4799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1307 zcmaJ>Yg5xe6g^8RDKSEU@Wnk3IDj4f7@D;Nn`}+CDl`5l{ZeLR z#vkC1a=e=qnxfbb`?!1VIcM+Q^w;knKLKo@q@xcB4gCg^7+^^6Tc0emVR?0Pb9bND zB*Va(<2iDjA(6{hHKZ7(YQi=77t3unxXC@~$OCiJx4ExFLqf+n7#hwS7{V~aWE^Zu z5h1reG7Q$a+?JMX1q_*7zTB1GmcHZFi;8Z+W47jfsTxFreVs! zw6c{X@t3v=&l;Fh3Q1B>5e+ehppwiUyOoa1&9bOjjc0VW zLpw5^!4(5nagEZ5GL|;i@%@jid{xQi4CIgH-ZbqPw0;@s@7BB58f#EED#_-K!GGAtO^))5se8TngpDL6;zbTZWD&=?kqDCAl^W{ zUr=AH^4)h!Uxw0D`DF3ngT7e&87<52%*?`U5_YSmPj`RkoIc;zmp}gd^)~>c_%?$k zG@EEqXvG=>otN#acCKt!=W?fJFY97pV9gPy>I6p(H1`h_Otcy3DY})MzHV1)Wu4R2 zzzG&}r@WH(GBDAc!8#}t>lND3VPJC_TngM6XGyh*na@t*uN4hOWXL+Y<>n=S(%9*g)P`>pq0r_mJD<^B%W}iv|02jY{w45 zm{wpL(kUamW1hAHT^c2O+v@QHr=oKcZqY7}b8dz`)|bUz zg?;F!8xy76dXs#sc*Tha753NDovD@LbP{k_;XplLYQn^03XkIn1M6gg3x42Mv}a%^ z*Oyi(k+TlSn>b`(YZ@UM)~78Jdr*iSL63>2SZ*4*ES5lf1)5hlB3r}cN~Y|JmWiVZ z&xy_^d5FhGFskr^;M#~gRhO~5p zE3~LjT0XTfan-<%^p2|7wVL+gD`YaV4YZ88CC#NwI8_~UGh@$|Ino`Swu0?B(oY6k zf=iBXpsykG%CLEEu)sYQ-E9UAuUu$!-&t4ktDc@{k|9i2ZbiB4wlw5RU4ulmMkwx` z22A>1C8%>!2bbK^Y1`w03AD!=GJ$Jpzvfnb7Q1YT4c?7we30B{+)Ob!8Wtn=HmqRT z*&w!*9ER1gDedl;&Y%w~U9zv|{a>7?l8HK*X?MXZ>f?^+*BQ|m%X~l{2gb4%C`m;Z z9N(d)qt&X*2ZXztc?Kt3Z!YK8PnebZ*S8kSsEj$1W`J-IHH4 zC;-;*dyTyuTZ3)u;2ju0(`dqVeq|bb))x6yF#vDl9rg^oi}#2U=d<#Zvh7}idF~F@ zP7du4kqOZ`^b<$pNbM1#9c}19C;t+$FZN0z(jV{R1|zp2gPZt(p0|i14ACd;t`K{q9S9*!?k-L&;UM9Mr-r2;;>i$CC+0ID zo=wc>LyRTn@en5x^TiM+hlWGEMAxaiIKKpop=P2`Qz6cTI4ek+=R&-Zm~VxcO-vo) zVq(sPxSW`k5Y@zVL)0X}m58+Fi2hmhu*xh6*+|MZvA3C|^`IZys8}y={q1}xc3=`a zDMBBL)VGS=ymI!C)V-u{A8r%7%^7<5?MdIAMFV4M45)tQ5e2y=uz?bw~ho*nwo5=oy3w5<_a=Zy&Mc>=_nyqZ3 HZ-D;+dChCu literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderMonthlyStats.class.uniqueId18 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderMonthlyStats.class.uniqueId18 new file mode 100644 index 0000000000000000000000000000000000000000..feafd6c8727e58889092d2487abb166454e8b7e8 GIT binary patch literal 354 zcma)&K}rKb5Ji6_I+KivM$sFH=*Hd(t|TA^q5*S)b}Yt(PIu_8h`Cx89>7D1HM3BR z8&^dY@BgY_AD^3d05=%qXc4Z;urT~)7fZ(`@-n2Egt#`7_{{O~yFYFE`{3opt*2ro z<=7z%=JwSZXMJTRPjfDX(5YA&j&O2*G5!HYUby0TP3SAq_zlC#tK{exHx9m1sF;RT zEctfkm~gyx&Sh<@yB;{nT}YCnPdNKu6hd$0J;$N5DRCkk{>hdR2yOim(9)E<$WW)v Z(a}j8-Fl7!drj?OUu&TXb;d!~{Q{|4Vdek; literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderStatusStats.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository$OrderStatusStats.class.uniqueId7 new file mode 100644 index 0000000000000000000000000000000000000000..ffeede4c52440a4d90acbe0520d0aa1834367f7a GIT binary patch literal 347 zcma)2K}rKb5UfsgH@n6d#3zU(7w71~lLSN|7;yc-xHij%$xfK*h<+^xAK;_J-W3#c z%B7pGt}d$j^K1J7;0EIqJ;GJ#SBBs0YVFtrUi(;!5AS9XUN}7d&gb1+h?PxjYfN!K z7%%OsHO@AbSv)Vf6hc<9{Llzzlj;1AQAntp>Y6Z6%99uC2&exTbKmXr!f!&!x3y!{ z*fDb13aZ8fN4fJ+QXCU5_6tE6-Zu@0nX@r+RR6oF5(1&G?*V$6?+^*voGAv1^pUkV SavXJih>`YOFH{&ON%jpmrC&Dy literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId12 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId12 new file mode 100644 index 0000000000000000000000000000000000000000..fc40ce46dcb27543e23cb8572106f473a9a97fea GIT binary patch literal 2012 zcmbtVTT>G;6h5iY+JXuQB6wR7u?Tj@866#~jHML8=>@l-<74QCvbf#U-7MO_=7T@L zALV$GEp19$Kz-OY$+>^|&dIOeKYjv04$K6^2rSij!(`uSqvRokS=yZ6uDQ=E=LEUa9p$K1R{%eB_Md&jEYv($AUDN?!o^V9F`0Sbt7A3jCT<4hiEtzD>);8mjyecptCbFoJUYm_SG-K{jw)Ouu%3gUFg^sOGxg>0!V>-sBRVf)NUxOR(tjgYwvHp3Gvx>D*u%t}6Brx5?F|E4RzznLzPC78R}fsuBpNJEWi!a{}`+?~_JSg$L`32a=P|bdIT}(wb~I zM|b|gtd~rE&D5#8x1dj31*>4-Ew`H(Z`62WygJ!#+eWUuf$}z3D2i4%FM8S683{c! zd^((l8r{E23Yy9T5;4>uibh>_xRYgq+8+ZLf{g9qxfRQ@dZl2Wr#r%ccTav{*B=mgK-pH z(M4B#MAu-VYc<&sO`+9wm_||LWd?328G%_0c{6}HRG8NkZk<-RjS6?*E{v#@k};K1 zH^9Bq`Uc#`2(vMCzYv8;b(fP^Wt7MRSVXlLJXH2^R9V9PBmClcnuf=)it8!0Ch#Pl K#1jIUc=8YC^IIbT literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId16 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRepository.class.uniqueId16 deleted file mode 100644 index cf163b71c24f4dd6621eeee4d0e926d9f406dbbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2853 zcma)8eOJ>~9DXhWu^|d8AcCUKRmaO_l(`pIbV!|(t*E1nZESA4w3iY|lbWO``%L>| zJ7v%8a$LLYd*wzDC@-=L`@;t^+@cD36Q?m~V93H-$dc-K$Efd)bQ>xZ zI6F0+;41j8tICn%d-(y3VAQ}F3u8DdFw#Np2oWcY0wrq#=TbQFs$FVs=CkzdgoSfB zFVGvQFcO$+S?Efys>K|ynolaS+3=cb*pCBMamq4MROkXO8n|TPZCn-@>nN0BqfVQS z8>v9xR?>}K5R-%{j3!sk!WCR4T;vxWt#dYIqF$qA0uxzg%!G*<%o=#l!uz;Jw++F>kMW7X0NL&-*V$3QuE0g|b@rrm!CSzCZ)1xzQleo94_j;iGQgnS}t<@N%a~INpxGt?XhmywpH$%Ci1su{@cAo!P(1 zK(`LX3O|ru#Z_Uh==*pT=pPzGP^DX%9oB0dk z4-R^8pHICFnD~NED;B^5EO93ACBDLm=HVxl)}WI!f5OL~VcvQLnme-w05ciUH!?5iF2AybzSJ)pyOo8Hi#&&=*& zdS(yyZ=57UH<3WkKx67FgKzO21ff`)EvSVSltriy_i(El+DHP;g7%NTtbH`LhAwD# z_ORFu?Q{xF$2x(=+>C?$1AgRk51!yBzI8(W%=a(6FERaUyd^fETBGXz=qX1LrA(e^ J;5l|N{y*3r)AIlT diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRq.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRq.class.uniqueId6 new file mode 100644 index 0000000000000000000000000000000000000000..ec48e85a66bf61b69fdc15bebfa49e23f5ab2ae0 GIT binary patch literal 1574 zcmaJ>%TC)s6upy#qzMV6B!q@S34N0A@T!}(s)Rt5kW#1sWpCn9Fm-HdPf%GxKcL^x zKY)q|L{&bZE9Zx*p0Q2d>4KTe%(>^Dd+s%V{@&gZ(K@XqC`92HMUpf|QAX(_^+Z(+ z)vPHy2S>ar7)9UdrY_zy3NIBaae6@U7$uT4PDw^HRjaP>uWJ3+;EEab$;r8j4Ca)hRX^JvP>j+ge97a=J!F$5i z5zZ*T+c1S*=M~-24-CF;nik-?Wg=h+0iRV{sLF|I=$dz}RPiKiRX2sBY+GWxVHlu^ z)w$!SHO}be)@H%Ib$_`xZqxnUI(IJ$?wxzt`tDx47dSTYga=0Ry_xqs#w=1SYa!X^=Nr)=j?Ms2^~9Uq!*v7OScn71h?|Ik=37 zLmdv}%Om=Nl3z=E?tAPt<3H!X?_vc#{K&7Umvd-_9^oQIEJK~EkeuN`Y<>`%2MU8dh@Bn8&O!^5A0*bt zNUC6G*vCrO#4hn8L~~f>Gf|r6u_k>0J)s4hWN-l}8EjyWV9(0n(sGkxrIjY7N~=vu zcerwhAP9^=VjQJUpvDa4JnoVoA8>=oGf3vn2Ib3NvbZp8ghycj2v3qwig`-Uu=ZAR zMX?J!c2|-gTFG;I5mfR9yKGU^tD>Xb_hHtH&iRP8)@Yzr>KbF7E`01m^`!ds%njA^ zYPg6;2tBfIZ9RU!R=mcn F{sW{eJR$%9 literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderRs.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderRs.class.uniqueId13 new file mode 100644 index 0000000000000000000000000000000000000000..09952730437493f872763de9738b85e6a07daa88 GIT binary patch literal 1900 zcmaKrYflqF6o%g^lu}qI6iO-O=Dh`_-Y5Z) z0DqM6o#}2{*C}82%;miAJbUKM?>|3(0ocXP7!nvtVc0?vBLY(w_LW_!+s(7e!Rdvp z1p*`6Zqp5R1cplGlQc$=PGQW#I4psD&1+QTC%bW3mlY@QDhIwJ{lk_(!gc6Y?b%hm z=Gm5#Pg=-eN?^3sZUtUL`T~p9xX)g=ci7UJtc4lOQscQ+ELDWwB^M(n!!DZCi_G|Kus~W-z?|4JK4cy?1Nbo6+@XIH~Q9?Zr9oh0a zvW<0Qo9f8sW1Il{fI5Ly&MJ(8F}d~w;wuLUS}R+oXnanKkk}#3K{WbetzQfJfbZmuE)vJjN44 zeR6T0ypiWAo|$-Zah~}BJgNt~JbBIY94`z!g*eZGk>@2|nRp6up5g!=^%lB3Ma{Em gP>ceRy5BxzX`nl3-DPtz5oCK literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderMonthlyStats.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderMonthlyStats.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..3be5f06b5daa6563af6a7564a0fa42dbee2f45ee GIT binary patch literal 1811 zcmbVN-%k@k5dOBbTnmSV@R zi3tz>0sc|O*}H=t0TFp$RWx$^i_vIWJm+#}->mZ7rc>ii*%u}} zVO`j=ZXJ}RAzg-8Lx~LirFO8QE%^?2@(TZkjwE^+x+pw%3Zi98N-Sht6826$Mfs<6 z^kaY_E=5^7roF?kmM;B&PWem--AD59hjiS;EyAxGZoMFCoMG{L_(hfOZ5<=HLlxzp zTZToIC|(OJlA`b3f?)8-qkMuj_DM#Um(sgkG~ z*0$l8N)D7!SvM)uh3iz6y0*?`UDVzij?v(fJA^clzM$CNa1|K_!z4oFm{94p$0hir z9KvWPw8{94-s4UKRTeF$%HNraZC`jyXB9N{d4s!hO}J7+j$!;?gG8M?c_h6nLP%FS zM$>2P#_@#cdy}4T&vBALqhC+56N_DVju#qU>d0e>VXV#0p@}ye^pL#n27nBS%1I1{ z!*HQYdtdDFoNu^h*fop06D1+`TFrc@Xu)8IG=byRL6fg?x9XTpDV(rN!7^MotOzhZ zod*d=Kl7eWd!-j`o8Gg6bk6#4L(N>Aj1B@W0 z_LkZlYQ@mm3ED@vOJ7DwT35@E&SdrnSa$jdT6X3LJ%^-QaI+dxGJtjTA(e-=;-8Ts$^wBPwyuf`B_M4ffkR=jj-pAxa}Kj|Du%E7GONE{<6&6Z_Zn IH(0>%9|b?E9RL6T literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderStatusStats.class.uniqueId29 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderService$OrderStatusStats.class.uniqueId29 new file mode 100644 index 0000000000000000000000000000000000000000..251e075cfa51e2c06e5877b31eba2d6856405a6d GIT binary patch literal 1771 zcmbVMO;Zy=5PcJpY!Vg|BA|!@DrgcuVnp#Hhys>ERRGIS9Q3qFrpQ9F6L%++-u*cq zq)N&v4*mdtlx5HE0*gdM4#`aScE9e|-P1pR9sB^WfTaXN=+Y3@5kZt8wQcMg`G#R_ z<=^tEuxkv_Iny%bJVRF|yBS9eaSaI_-Ow2dRng4zk4CfA;CYAJyJnT=*XxNTb5;e{+dm;E0g?3HH5Uvw*{-JF&s07Ow!3t!$ zUfJeVSq$m2o4_MH*6>8fQxq9Sj;GviTheUO3vv7BgE7P_hxiP8!D5)!uGryu&v4nWY7Op; zm4w)7w~B!#pKiPFxbdmQUvj5vn=L8qpvzLjaGapR$9Nxr?GXLMdpYWdzG7M2b|E=6 zJN4(A*YKPM^|%ZjfDdVDSYQ}F+mt%v)c^%r7a@9JA*9tlQhPz|4mzWt1%ey&WtgN@ zwdCkb=DvgFCibD_Cil^^N2(A;d~@J4M(IB4nc^mHkwi`|G;?nXJcQeHkB3ODJ_5b8 zipD6Oid3LenQFNM(&H;#Pe;%_6F)*Pt(x%;?)|`*bGZ-U4h2!s=jc@Rh~*{@F!(qB z0ng@$U<`MWp#&7I2qOU`bRSX5lcXp`a^IkxMJVDUGO9|JTvSFu=brO8N01}85GF9` ro>K$?Tq2FvV6VORTphzhglPl{n85=gui76Xc?!>n{XAY^5re-0JfEDh literal 0 HcmV?d00001 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/OrderService.class.uniqueId14 b/build/tmp/compileJava/compileTransaction/stash-dir/OrderService.class.uniqueId14 deleted file mode 100644 index 0209535b25964a38a016f2ba70b92a5c7858fb22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5345 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

    O7mRx{F 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 literal 37277 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 Sn*EG=F0=kC(sh`ei2nn*H&Y`3 diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/CustomerServiceTest.class.uniqueId1 b/build/tmp/compileTestJava/compileTransaction/stash-dir/CustomerServiceTest.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..e80c1c535e7a74aae09205597c1366459b2ce25c GIT binary patch literal 3292 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 literal 0 HcmV?d00001 diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/OrderServiceTest.class.uniqueId0 b/build/tmp/compileTestJava/compileTransaction/stash-dir/OrderServiceTest.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..3c7b767760264bfd3ec937c006467dbd551506a7 GIT binary patch literal 7520 zcmb7J33yc175;Cw8HNXhVUa+B5d&m_3@D%yTml4%ghZ1V3@-F#=8+6cX2Q&y04}Xy zMQydNwQjA|*4Cv}a3KLckuKKO+B#ILZS7uLyVve^(e}Uhy*Kk-GT{@xFUfoN-FweD z|M|~GHuZFe{ws4;ef3{(+bgGU8^`+!Ml3pLBzO8Tg+@Eu8&|Dcv}my( z(`YnvU*_=9U73T@5kF247@xVVGV|QgYmV;D4Es?gFwOC@(z(bS&O8}FDP~Cr%LUfG zF9%1vJbFY1F9QI+ZzzJ?+5i=1|4z;HOs6yd5RHMd+S`BqrAW-F=n=+Dv(Xe67@33w< zjT9*}DIsHOHwF@^sF_Ia6!3SDU3;(nkjfGmGDYGGfC0OdiG7YEUbb%>}WN)ZH5#CDYLhG%+0!7>VjJUvZch0RE zXsBs%uSl8co*r^F)E4he@Nb8GPv4iL!G{$Z&IIdaq9S+J3xR^fW`SjS_IL3mYtg%y zd!K_wA69BuB}1rsKMn~5Ovco1nCWC(X0l1c8l1~gQ2AM}4-6Pdfl3df`qikF7i$LL zYsPs#tkckf^#ZfqIT<}&T1~VYsewd1We6L7m)L`@?Z(g&iU#uT?SqYRW@>guLxTUw9twz#^vxu#1J?*kfi^iW5sRME|>g?V`x zU{ls5ybK}&!-vfpdeP^wNlj=;#Cys3K|Pi>+DNG>)#tg_%g3sYwrJQ2R)k;H#>$<| z5!T_@wiQv^24pyTjMn2w_%I;3EQ=~fM`wxzIVmkLT2DyIzPkpU6>8J8hCyr>7#B^Q zpEOeBgF<|xM0}@)%W(w>WMSEvOfwxt)f=UHUNxptZ42N^d`ODt)rxMpo}xT)71zjn zyXVw&NxJRUa1B1pP{VdBbL&@~hjcC>a%4F-nb7aS79Xw?sByFJn2V$XH)!|>K1v57 zc3aEsDKMr3j`Zgy(}A0$10NgPfzgX(jo+f-R@_Fun29FU)kjrtu0*$uC|*xpOA)_A z!^b7oC`D91-NpC051u3D;uQ!|1@vyAVP?IvH_rweZ z$YUD5fG=h>sIxDb*v_i#aO1HmMzk7^V`I0Zs2y!{OYnq-z1T+(;|4WNU?D+t_ah~A z(Xg&u?UJfz->gqWq{B<_l+?th1uk%VXt%!O*vjpqy*hyX81i9Q!vP!=D0lniq;I`$ zhWm^p5h~QhuRM79DiY4{et zO?mA#%nnmG(~Qy^pDlW_kTSBp9UXBHchZn!zjG$(l6C!xhF9@jYP7L~N2`?8R`OOJ zCH-}L&xh~J4)z0q$+;a@CK542=V@y?#oZ;)_BbQyzz;S22tOt~ltV+7)s#{2)NGU< z{Zzxxq#OjSiP9q(+%Gh|DVxc7OC{E@EpwBy_B5rf-{^{_qAZ`rcsxOrtQH>hP){BV z8@RwT*c_KHMe7Iy-SAztgBV)w8Fq#ZGIYqkcl8-jv3e>huFnEm5bf z#R4<)?P;CcoLM}e`_=UJ6c?0v7Ub9}k#eSSMG3opI>xSFI`WuKI(Tv0IpAPdH)8IJ zF>ReiYvn3uqt9zfbp>jj^U$UZJRYl%niQEmNUL$mx(ZO9oos)zM=%;HRu7#??XuQf zj%M45Kq$}fv16ELwMpe-mmZ5oR_ms2JGe@9P{+Zfu`R7$yT(euHhLP6Z8%~t@iPVX z@qCfXj6)bU)HR88JYri@;-77KJVRP~H3oPWDlxMSO;94icO?5>vz9u3R9h80#!e(9 z>)u`|Hu4NKaylK&lQ_H5&xq;$JrTX?cmu3jL;`s`c#g~L&0PdDi$=;Prc#-5%9ibv zoYj#?C&R{?s8ob$DvplaTXMZzBd}l$sv0{?Bc8H)J+C4gqGq2YoI3P7%ba&uFVpQe z+9qcQE-R(5nkh4>53D!LzCp;T+jI@ z8Xrt-H9{>4QEs7c*2C6|{rG|%t%$WBobTG19`qvSOubr%d@bP zBH*6>{vTQ9JS`U-1Z=)*O!;Np*5EnCWVPxw%Yx9Px(d6SaIzKK4`! zp@ju1dG;^hL9&>?`IQ9%zvNvB|Ne@93*=kLs4>1Mj2h#s{ird%K)c4?;(p_lCAs^r zc@^ScAxCP5AolU10KegH`52gq-}1L+O~CK)d)@(m;L`%RSX|00KSv%r1YdV>TyXpl zCbS$vX?HLfoEn@SoH2x%>kpx#yKX^n`VdZRwXf&!dU??yRCNzw-tuDSqNMg|%s+sI z0>e0UVOh~I&NzUx3$TIXs~7IaS`L>L=Z4CP?6H#USnGbYFZUIf`3~ShxlOm+au}PA zpk8gfL55hULR^Lkysl?>A(UegbFdgoaSG1Dsl;(9Henf({9d$&9|&&dOYl8>@+i($ zkhEK2+mL9uAAiK32va#{zKuTR(-*{ET_5Jue{=qz-%UAn<@~VXM z%kd8W#gC%@rZ*C5Yvey1aaizQJ^|j%!ako@K8{=$7)F?QXR#;N9_$s~3l=KuU3g1O z>JA`UAaRy3_h<22oy9bVb8FpxY+GJZRq+^d_klu(|A z^Mz1Q_LHUWhyp_50BDUAa>N6mD9Qr(9Iwb*G3gMl?3N(PABoZjj|a_)ZU+f1Gcmuc=m2gnz!6l8qFF^xe71rW1rcdWLpB`Mx zblycC?}LHo(TA5g`YK}7tbV2?EL5(aC`$<8o7ZQ&jK zY;D~^d=4y#M{Q^xAI6hMaMLiJIfBRmFljD)rqd2!Vk)*%J+8nCT#XB{OT|0g^1zOF zDpuO@ddV1Yd={_sikd9O%S4cW((yyQw0;Mvl^F5jMae?ictugNh?brg;}sD*F(fozmC)+rijqFsnXA;tpH&}gq>%dJP51;S z;q;jQ<3@kZR0+2e^BpM)ud&i8$FI3S+mAQSEFY=5KPh0(3Tr>|!;avFw)A=}e3tMY*(E^;Og{_Ubh$mQxbLHBY(^+^N z5yzImEmB*oDUFt(rDz$FlEHae@r}-zi}>>w(3j&prasH!yc|S4YoR&c`rjtGqbt-_ zqE%?lYMeLkzwhX4aPHV=v3)XRfrcKj@zKK zanB~S8IiZ(d;~ljz7UQUIMO+a0QbMY@B}~;w^ehS)^@Z5k$2)ethhEdJON!&3Fj{U zgvY~zU7EX<<&|-s0#jQnp0!8?=gAcrnehZd@wcj)d-iPSDB3f7-TIn7s2sUN6rxMJfM3}OA{SJ%d~J_LXoYZp}DmwT^r|NZOVsFhjE_& zp8W%+qp7R9odE~oa5%j9zj``HwDi$YL_UUdH5T#dlE-n^&Wk~x&^dAvcWny6Q>yzI zcmfVCa$4t%sy^emc&~w`{PKT*&+42xDSpP)F;v~eP@GykO?)FGt$mVWh{npZc{pz& z$e#$f^&gc@bWHc?a{wY--b}|_Ym=m+c(sL&DS(8BI4Ah`fB!iB_bH5W4p|~AoU4Vc zr8Uk)#OLGOg_b58EjSw(gn$Jf!%WtnxbmvLomvC;zToHH6Wt{tYTM%;k6`Z@JEztcc&Q1Kc6CUTq1IBR; zEqPb2a#kEZvU13A+cuXy-Ju&#En4G@N7wMk1&=Pc;&Glvd}|TNpBo-znlEz4v-iLymm1DU+irSOf3MoD;}`CSd^;Z_&K?DaO;_9HMKiA@pzN~m?h$IZsuSP zV8wT{Z<%<@38ynSGa;k6#w`ht?&4809;Lw1);v)v9_MZ7DB>B~8XG&_1Ms#Yb4$<; z*g89by)oUe$g=H6^c(ksM;y}dI_Y@TVEld9DX=wGvr!JBYrg=;gdDj3a$%VO?T3B*0rx#WUi>l9Zr5~{}_*+;877C6~opNIL?SK z;625Tb+q9<11T}GkEGrLT3nDpGu}I~cv@M37FL27 zSaPjRH@p|$+(A?Yq!kIc)5S6QQz4dhP}) zwBb=Z2B8DA0MlHIgq_%O<8z9fjoUB8|M~X#k9i^|`DVH1_bxp8hDY5P;@<&hD?6he zI1{wg*c`J*0G=OAm)hO2pSZmJFflt|S9mWT{lKH2c=QYI*(Zi;Xw;9#`Cw-W`L+Th zULq#X^UKZz6|E@yv!2InTPqW;@*A%)fJcAuXb|=d;c>oVdUB1hV}@Zn*V>v7$iiRr z5x`u?2U5cy98%rkk8#pAXJ$03Jn4B|kur)$V|erzyW#l18-js1o&XTQbOB#z13nAR z?|!RqDfK$=zz=1Wwf@!W?SmY`!1N3}VoVFVOTKoJBKNkCBqbRim$#$te*@P9Lr z$R>t>^T33TCkP;CT>PRFwM{hxHo{@TAb2r#(##x0S6l7No*yMVgT)&^5>IBVgt)AC-= z53e!x%{C0pETM@bARZTKMBZZ*0G8LdZ@QiFl*irWYV>s#@ z*vsbIH+-nm59)jxW)~d$_GDigK{uU%?!z@70IHZK@c5WO)0rHVsJNGRzL_sP94%VM zTupnOK|q-Vltn<<@LzmAz5$;DaE&a@!B+upwKLkPzi#z#`*gn1o~2&Id`LjK1W?vI zSY%>u36Nn?a0%g_a!l{{orz6+t)0t#9uZJJ0XY-^GmMNeW>jx2`PTA9gD0h?zxB+S zfiHyw^cXwziCBm*FKz*=TxPAwm^_oS>9d}!k^XSBd=Wvnn4nrhP zz_C3i;QYj1O=K>n{|n%tJy*b!rOTEBR#UF>B|J3Z+weGVOmW|iEpX=Nj7BfLPQX-X7+;6+-Ip|#zeN2+;N{Ryy!DKg zwB?)%J?d1hp@OL-H*E zlrQ>Yo0%PIJm`a^m9&-@z|XBR)Vft8(_&3VV+mWS-R*P{ejvimfx~J zW0&}c)Y}QDgMc~-s0+0B8-Ox1H{=Pd!7^X&hQDkCd?TK*tpL-z>1tYqZ`6Ix>Yu%` z>}2zd%I^f!LqLwb03Ea&R0NZZpBq0d)Mvh-x;`!X9jxND9hKrWsM*VaN;m$BO(_fSa4S&I83f726xgl zYRT`7^2VXBT=Gp<|Bi7ZB6lM4AR} z5yTaqf9UhsUFoOpsy2IpG;@E7!wsTZ7!idNL53rUIA6#pgb=gwASk3q5+Pf`QUOl+ z>6(%odh0yh`j+JL(qDH+5m7V|-6Wz5F>ompzQBqrx&_F9yW)w=tuQIc+~`|2d%9~e z%F1}M!z1=`EKxI#sCSzvbBCxIPt;5xqC_HEmIVB;v9tv%Eu^bMwB*JGgGEm!;#|QV zr4VsGV1xh3250{!g#7tM8(%M4LXCR#g`7%6_b~FO!OaCc6R=`{G@Lw4?~VMkkTNgj z{)hYrqwyQliK_RBG7pHV8AMI_Ot=%k3VOjwZ ztPfvgZel)V{b8w5xzDhiQhRlBPhYz2`Pf&5MD&;lQJ|Q))x)K|l*ga9YD>5Mk#=(; zKOv$bA}S`L5^Tv+Ac!H4YyAvJ%Lld!%#C?60CMk&n_RCOoQp^kB7>4+0_1U`p8;|*VPP+XdSmzFw6IEXl zH7kg!w~1Lq^;f{nDF@Bjt)qHVD_TL}!Kv(y)2&TDuZidl$Q-^8gA$N*71vO_{#Hcv z*`8Ux4cp!l(K}2BDuESTkw{=}Xe$osIu|Aj*A3mU81=b-O#gO#+I!-jDxyj?QKp7? z=mYUkEfLibQ9ThgVA|6Ntl^r1=G+6b0G42g0O~(N;5^MeDeca@SIG1%4(jMV;qZ}& znuzEV5j6u_KEo!AM8Yp1NhS~*K;qm2w*X6IVva?{N^@HBrDpAT@a=$^!;UMQjT-g<64@7#$W*%JIaC~%pktC`WsfWd4Fw1KN0;Vq5(_@<}UyYE0)v~ zo^2i8yR+?0UE(}PuRmZOurFU=+(^S&1jW|{Cp$-kgeQii)ejNTFcC?O05kZ8ShWG{ z!YC%bLMzUw<72KfPI<}UTjS(fKuvo7gv+)4Vf zS;G@VjY%SMA|YoIx<*1SB=8ZgB%Jp@^!Wle63z?aHq2dEx|1M-g%rtyg!BFX$U;c> zgf&)HQ=thbWscY0=vXa%=922B>bkjgUL@pALXK|OW%3-JR$4g3m`5{r{_r6uRQZsO z`jXWANXL4K^#p$s&ST2D2EZqQxa`51-l|rWWi#FQ#MnZD{Mq{%fh2UDgn~#Yn1n(| zD3k=z;0;&~^(RnDchXHl7zyVC;R(;y#*)u9b|=BHJ$JZD7AM+?=I*ogh?GYX;Uuu? z@O;O2&lTST<;FOpZwNi-->irr=|qzDN8zJLI2RkPB8Tv5e?@EY(3Ksk{&DA;$Ks+% zAk47OUK=-I`nPGsdGktL!f^lKO%jSBA*m;X5jTMX?lO%0j0AZydQ+z$1Xa-Cf~8z|h4;{}9$y zBX_2DDoJ|)e-G9R_%>YADXF}&ytX#{%xrIy>h3ozm8%ERNGP2Ie&;?33QRnxTnI5& zzus4ldMft>7azIzZC~_d=LaOnw&1zn*5`VKt6Qp?EIT)xUve|}FP?L4;_8I!qshPF zy}jPk*Xf#X;1E+zHmH3T++z4GdPr3?xsyRs&m<{lkx(`X^44KIJqM7sH0KH*0>SwL zj`EAKq2LQ9&erA$ zp#1MK$FHlf_L*VfZuj>k$Ll4hrxw9cBve8|Pf6$*9AnNe1v)^8Ab^S`h;pip*SVW_U$F*mClXucte6D z4@hdBdqMA^UPj+{ugr|&}?(*>DH5m z;X>fLcpTfcFVfwWc22*wTUI8dFur$$ghokd3~mH+lY$)^taPo373aP)kNErYxrn5y zza*V>f+EMUb5!-LH+R7D)Y-&SCp;_0N#JFMAb;6Zz46Y>p9d-F=4)0e-#;^hfwn!V?y$(IO9i^lphJ4QXo>IR-BUbEx~sJ z`y$~QnCrqm!%b&D&||5Xeq6V>V7(>#OQl2<8AX$k<4ss4F6J5wEnyX2JK^)|uL@U} z2KKyQ?^ltHA){MlB$Yyng@c6F5a(j1n8QBGQ9AB;`e}WM{py3JJpplKbejwkbO)GW z!{=j=bn%rcIZ}4gOO&D?$#>+-#gid-g6Ef%L^cPst~sjz8me6%xLh%Tj1tKxi43`V z4&g4w9IWgB3&&P!)pd&Tk!>;UWx>k3Rww)IOD3ZfG9*c< za0j8Sp|~&z8&kiyQ<~Bo${pS*E`DZQVsVeG>_ii@- zlG4eV_sLoh$Qp5k1VRSz%37V%7cZ55t~`~$O#RkNr?KrT&vM!+Wfu?H7jIe+`NseL zY_CO`WYq`cEPxBKCm1e>neHhZ`u$hx10{4YoB0 zBvX9rM?fj4G+E|@R6YGnNRKX6V#c|Vp$lJ4xLG5hb`ct%F0pdD*`K`M2@lX~l9fdP#-j_2D;8 zamQP-?mMzfC0XM=S-Xm?TunwbWb^@qu@*E0x?rZZT!FDU*Loox`{x^xvynS`_)E<@ zQeW*f|HXah>gvdQ>&d7A_CfYTZv;k7)$Dl2obL@2IT30vt{)AWv0MQyAOA>3O=R>5 zxYP`o8euhHu_a#l@Zy{+T7^H4x=!|#)f~+IOh#WoX&zyBJyh~Y()9{SKWW=_6M9^u zYzrBEC8Jg{YQt{a4*K%H#z_bK!L=3fp&sGj*a_?qaRsJ4jOk8q{CD~GdYrTuWk1?o zBoLTzHY#b1G+wo6v-yy(~hViy^GgCn~!D%D6*Jw?aU!qiMnNXLFY>DK&a-A&=Z6E*A9^P{2|K>lC_7(;I4-;0zoa*as;+u zJwHH)J_^J&7fj*Ckw12#`Das7MNZ{`1e1{MZDVB3zhupEvdjcobCRr9MRKCxJf_;M z&hTlf(?`EXfixO4-udSx6=TEoMeY>jL4gvsSRE=QpYF_ja0`DgXL@~Ph4*$(3i6_WI(TCT z3B)F*F>+^59gfx!FBPWoJ94I$59OdQMKhnY{0WJZAJEwFobrr7*u3V$AD0qEKML}v zfI0@ic5Cn-aJ=rOSB~W=)GR;0z=TydEQbRr=sE=jQNS)g#m8XrwE9KizCT@Ry5voE zE%wTibAu`SLMS?+6m)}v!YJqh)}o+?Q=pn`^3Q5V0C>nsgq$sx?GjEUyEn1QW2rd- z^~)nED2jrjDWHe0`1_c`d@wsfNzr!b`QqxUY;c~~b(4Z(DCib|jfJ+hF_$kULxPQ0 zf9-w``;?4NYaT|ruZ*Lh+Z0GI?ofdBRuGQI!|{-639E&hF6qJLp<|!5* zDZG z2s~e?SVLX-s<`Df`8nwXeRK?M|4h!K5|BqnFttn-nF6?QIgHVAAQke+_wF$F!L zfc-4O_@6-*)$fO@GiKZ?*XcEp zNqZX8bLANYl>%$<^8ROs0YN6&G3 zVK{M+6A9z@GRNJjwK zLwbMCYI?jcko!7krMF_&tT9ky3L2+C#yJ5OgP`Z1EfFJ_b+$3ne$Kvg?P>4S+NjZG zlN97cg@Usf8_~!2mty}Y41N4|>(r$-ePw4Vx<*AVR2Vj(0wnP05Uj(gVo1Bzm2@xJ zaa8J8>C^0^4IOvgsQcWhY93U5Pb&0A=w4Lt*Z)_YoR?p4qW0i>i}N)eEI06LSE)|4Q_n#FTW~x#2Go?krrLWpLn* z^Fu1irGgjFgGEsP#k#>*P$0|xkzK!=x_H`i)v&h-r|ch559U*K3#j_}q+oI($O*)L zBAzis7)h@V1keAuFk)WeHt(SLV#;GGdO`(DS44#xzaiGQ{V#W$MekpJ; zLOIr0F>n{7L=48@IqaIlSEG~M6|XMcd8tlv!&9otGpbH0^-u`DjEcL)SA0&zVm)h4 zw^Zp%cBkYn?N#!AUs}Vqzo4p?Q&nG5^(v?`uc$h&sWNY&T9NkIu zesTh#3S$bCS-~#StN-`em|jM$0Y&*=!ubIRG1W-}-|y&gI?t?c<51-Yahumf-|AZG z(JE3MCh*qAe0vVxpyJ)b654^|LC@ZD?{0Rjr|N1R=HMQx8Lulf^_?c)V5xj7@nZuO zHB!Nye1t>)Rbk=6Rua?NCuVO-J{h85W;C+kZxfJ$3QfRfI3FsEQ2H|G!m^Cwn&QIm zNlz78vX|>$oTKxZs``bh)e?Eu+N7y` zW#Og3E-Ly)Mcq`Wke1-T!&)e%Ktol8q4xd4?eKt@ojSisMk%tl9v$kTqF(HtKfu)d zYebdoUDZ`VGI$k5*j3YA@V;ygr*XxSKLgM1tXNQ<(zt3Try?uG0x`YR1i&D*9qLK)Z*pi04jr^of0^T2&Hqb9<5V;OIs-OK97(Cq;(SEi zBB{(Y(f0Ey4X1QC9$vNEvQMAn>sH?7TU}lh)(rLJTep&vE}kk>+;V{a+xpPSNh)%p zfzmm{peD3=p=*fwe=CLK#czEsU18Jo-~~hydp>LXh(wc z=IVL7oEk*0HSA}2(U3R5$NK;Z_B=?L#GcGTuUEmiL#`w2Qq!rO4CxME8szuG3Hu;7<;Q zBcNUYEo7k^4S;ptZrQM94Z~D2AY7E{Po5D1V5smstp1COlFYU0Zjy{;_`Y3~P#U@c zRHC798j7GnUE7TmNrNJQ8P}L+97V&qni$(e18lqX1`1mZ)&qnL`rM6YdfukrNxdJd z9a+h~Nz;g->BbRm!D5(^jD`PULwSru>#ehM3J)fDY*P)4ZdQ$>LH!iA*N68DSLK&{ zlZf6GVN;n~a+`+k(4gv3hJESY`}oJa{lVJl61oR@xocSQG?akdE|CUZbC~>qB?tHp zvf0~~d}(L-g~okz2~47)yEIUUWIz&X*bp#ard59B$GFubbycmtQw?5nZ#SgSbPZDB zUQ-nnj{IELw9&`QG*sqkt>?c8SaOes(r6Iee84y#=gH~mIh#A-kX06M_Tz;`Iwl|R zT;1o>v6f{gG%w!k%H1E*(0ZQ+wN!Y{4Y9K{ACg$9^ZeDiW9rqbAJ9++4Q0|G_KLx0 z!J!Zm7>lcp0ZaGcQETor-2Qv2b*UY?s?AY`2xw>AK z3Hf=!$XoKcyQMVMGTMgRI6-MadYg-P)jcFuVv_YUFp{}^oEAs(xCCxOn3*xg&7pC zIHnMk$X$QCSas%_B7PC=oc-rYn(lj=RuxUPnkK`gGbFpA?DMy4T^FxvLjBXWnNpoI zCu=a}ghTQ_|8>#X``VyF!LaoB8l}b$G*nB2nr9uz6gJ~BrMI@le5q3r&&GM~7OM&h z6y57-+6^?_MmU4?5iV(BBIJpN$s=Trq55W}+Em3z&vgHol@0S1o4{@WnQ4$3#t@1y z>v(1Ew7$S2dEU8N$GaAl?AHHGLtkjnrxed#&3OKOB=m>p%U8jBrCUDRr?$}0R~l-i zp$lz5LaZ|eHFs;%c3_&J5G#LfhlJ?R#hUP63r@>*xTGtE6FKLGheAxvd&A17={4S{ zAlP-#P$woyU4W=icn%Wn`!pvHL#>5e`sis1}&^2Y91D+y*BX9K9+ZUpWh?LU+eOBbPdta zFb(?mVvk|imF**y_FigB>=8K&8JETp8XBcRgf|8Ui1Ri8pubqx{+H9%BlZS8`X_^~ zzWYl<4S6Q#q3N+0I((xLo@hx1;m?gGduJG)Y5F zbQrpHrbEXI8#aZCH18T6ZV&A!EQhUOIojCI)8C;~v0;v4^oW%U9n>A3tL{3MeDAee zciFAmXR922U%Ju{#u41;P$ruitKgJ8&0Wx^RX)pA;^S%cdGm_g>Bxf)35OWDJ?0XH z>n20PcA2Fw_`OwC!jle7CokCjuSd->dh%qEU*Fo8vn47!>=GQ?xEwjv+ht_ig!1cu zp1!E@Yv*{=p+E$Px|%?w4oJRUbOU1MvK~>Yi_e>ep5aNaVUR(o6pO z(vcq>`P0#b06N5o7KUQiy_fNgekn}a;%dw2p9=ff@jyDdPRE*~m|awDcrrr8r%6<) z{E7+{xRnLbb%W_Dn)Q?rI)t_`VGpriRgH?a)DdFG;+@-GHjUn$X~wDWsiw+~Et*NM zux(0dK3)?_M>pu;yTV|TP&|7CpvSmZ=GydDFSD3udMR{p!_X;CvnAzo>@>ZHd0UHC zT|F|oBAkvQ0F$Y#$8)>Ov%1R)b5+}PuJU)xp+(YB6dmSXIxx2z5uoyT@`jL|0EQq_TxEz=4piE_& z%JTDPmh7x+nG9$kaW3Xabn9mPRDRT`)^_7ljP_kR%uoTO)+jx96{7`}t4`;1eNrvm zmP|(}bQonx1)1gAI>1=kl>NL^o3&UwUGb;R*URV3j3T4%(NP*5g1MU*krXdTsBuH~ z=2!o2**}PT{|s^ZnLB6s6s{Z{*ZV4!Pif|*)6so8dO(L})BZ?o%TRjQF-c0rK+i;v z(a_@8Nf~r-X7F5VD0@?JydZAgyRCE;Yx&y^M9z82$63ZI)lEe@r#)k(@&_~ND2oo| z1F0(^*|qG8r2`^WTMkMIUge!Y+B=m{Ma(P0=NmRt<1f%zq|o0mAP z(7Jm@%QFgHYyYjAZN(*Y^pp-(Pwa!`-dJ|ZtUJ`UqaCtbhoAgsbX1C=U52TZ19pzf z8mD<0`y@zg(}rvL7q%Kdr>no9AMzue{6XRDGA8*#sdTTkUR;XAKB;fzbTI0$NB-O{ zQ>ogWd&`}LtG+Vbx4)#L3Xo2!2S%yPSMt=8vwM|rYMTn|s#e*(qNCSz^o9=p=q(6= z6$Fju5I2d$`1S2;pYdB~;WQj|`r9!4$Q4yi2hnd zcWbGqYgdsPz~I3+mAC+~!`!zi>F%d@zKaHfk^&FxXr!Z$U~1{;6NoUO8M`IqRN`i? zJGll^u-5M{G?klH?|6rv-#koNk?|SqI31ej;zW7JkJz$la>hl=Z8l8{^_=#-g^s?0 zIuXL?u(PdSPg=jmxAsV7PSS?!M_O9xsErP_rFJ^bS3D(T#Iu1q2dtbudR0++$2kw< zqQotluZ`S0z_eg08Qyp|UP1dorS#F4#WqKCzb)dte7~?aJ?{*A!SLVES370DchV1b z(RIJkHM;>PI$G8PcNI;S;fFE?_pLE?{ zbQmLm@rVWjXX&5ka_dT2oKhv_9XlWTuj&H>59)=#iAhHF`j%hO-yYhy&XA4hFx+PI zn~nxR@#s)msK*at7FS&Ahn4F`Hg)0WyUQo(Ucp5ly_z{hN5j}{#4;1tGJ`sHd@h-I z;%eda$TGDNIvT~C)fixH#1dpeCIAY)W-7qt z%|5Yj=*t_Anm+1=>-leOC+WzE0g)cOUgu_L#KU^USLHYUbXr4SvBO4^yy7z<;2HzD zFrfSC%7747WDF}z8Y^o)8&+<;SCroA(U9PnjOYBy&U%wQd?7Z`PFA+db}w>cAa@2t zIvxz1KUO?}clfZm2XR9Cd(ZDn>t}Z4oIPUbJlBWy&Xa+>7~r(UsliLzS;`+O*0A16 zTMcY!?p@){Kt2qp-TE@bzQP8K1rJcjqfASgHYfb?cjJX+Nh?YDehg)Q#-RYlp+E+d z+n}g7M7Yj?@hWr97H5+IuKPNR?_s^Whq<{*K@62(hD<1x9>TzROx2e;hO(n;=iQ$a z+$0eHcpqPVI+THKFi;o+g#!#Dvk18PdA=|bUO|L+0I(DuCa?~?Pg8{zzwDWbZV;JZb1KeILT*buJ`oG>`(Rr0` zYl=J9H9vnIoOniq7st@K%}@=2cYqW*di717n)8oJ6EZ)zzKwINy2F5XNa6u;3!z|x zf;?yDc9F_$=>qiVt5Jzr81z;cMq^N<{OD;SYX-AYsb&& z49<-|*B|n|Y37#xG=^3>Lqi^VK^&IzxWT$}n>TLr-94wSI{ou~2715%l@^C8Uh5n0 z9p3Y#>rQE5yk@SXas~rsG9VBVGyUz~W3efVY&TxSTbMA$R?p0WFEK|J)eumyf5!e5 zuU;xXjrNT6&Ssz-Osd2V$f#mI=|S%G9kM9VSvvk_=|cucI&9kZ{?3I4-;M6?t8RPC zFEAk*aO?}-7r*pV4_GkSVuBp{>~k5)0o3aZ&X$3JkXH-^oo(iCu3W#zj>u!cL_R=} zduQ}&>{?HVm1E53XG=%Pj~Kf747~zS0tT8B%b-67K`;~W?IC`D0w3Wu3wW79z-eNu z;VzWrc5aw` zXr%zfga_lH;>=pKp!i}Y^Br^N^tE1X)@eayjD61;s-ct@447s9_W}^t5^B*;W<2{f zJ~JiO@ng>Sg(Dw=%Ngh;0}}OE23(>`yX*bLWqQit!ku58>KUIZ;2Q=+d9MKqHXLIt z9+QEE$x;%I^!>{Dy(vGSE9rkljg@fEkpcu)$1N>fHQ+kvAk7eWH`r zsAQ#g_B{jI`BeZ={6dYmK*~{l-Wc?=ZqxXu$1?3{Th6FgGa#{oy(+{9X-!+ovlOx) z+9a%4`K*Qk-6?o(NY+mvHWsK)gSC=Ay^=;Xgf}8R!d0;MAOQ*FmL( z)Ab%&FHb$3*Dx!P+rmI!!6Fh{0Y9u#4kr_NuYT?o1ZE_AW@zP^x0SSkmNHNWM!`-n z9Tq~9Of2AUy1VxI0>_Gct?AKc(7G^A7Xy6*1gAPC9=AUPX3rcQep; z2BP$Uu3z9fIPe6$@X5>^-VZV79IR~nQ(I1&b@IJj%S2E`@(%`7ci@2Y^+8XkZT7PF zYrpHcFCj&+x;d!dnv9Y5G&*we8abUZ-hTZmG36 zZ0iGsgsV}-v9rI$EQyQsH%CJkZ46ROIdSVZ0}U{skMRfY4fX(YH;%5);_nHCP3p2o zy38at>JBo{5Joq#!dG3r_Tb?2R=r*|f`-I~b&|sjG=ed06thn7h5=X|Q_Svc$bH26 zz4LSI`9Feri-RwljWN();4kqDCLFe=zdP$iHV$HtQNw*@da+%H02!;Kqa`-;SG11eboXDn2}Q$)(*Yf14%_D6Dzu&O{zeIMZ(2?EJC*rInn&&lSl4Jas$REBF*Ct{vJ1pJ0Se5zb&ZVDet2T`U zFg4N%fdCiFfM8l?t5D$Sx@n?2bo_dS!RAftuQQ>U6~qKHguMa-of>_+)CIE%eM@iT zBQ*E$Z1-R$3IX6^rj%1dFAp|NnBIf!^WI|{W#e}|*fNuwH7GNQn zv#G6;P3g=n1>c`mT(KwaiiR~z6vG6;xCO_EU!va_%f#LqgH#?Hjl^Urv+qm$GtzmD zh4BSnLfNEKaZGfZ3GU|(P~1UiiQ%>JF~=!m)fy$|%NofIRuPxund<(G5GrRu=@7m! z>_EkpPGQu=66f3mCcFj->&?IWL|JvbIka_b!j*XI+SWuS)F0uwa?qLsyQP+j96Zj) zuR`a?lbGl(6D2dD%jPZUVg)adt_*o&#=Mj~qnDLF&46KBkt-*m92+&ksQJ{Rc+ zOw|mg_R35k95$@+QVKphOoy7q!{GYp~U4@)R9Mb5|Zqzn7cEWO-)DgOLp zCVGO&zIdk0I&N&#MV9;5Q41sF!fggoHe(GmM#V%>lwA=%A4PuBU>~i zA9*{heab}7fc>;mCNA*5`AB%r27BcQR?n}L|9xP{>auKb-pajYnyF<>^c*`+Yyfzh zo%|e{7B8hKUw&@)EWF|cQ#GGa4$=;BAcQ0WPU*5Qn;wsSu$$YK5*ej>v+E@jNx}Q- zF`dUpS8l$hFD=MYpJ`B80RS;+62Ahsz+~rHe@e~VfLo8-W8OCZc+J##!_;`ogjpl3 z!S;>`c_#MaB{MDLjp*o&dGJn!GFqPwj0%zb?F?EvMn zDkiGNC|LvBxk5*4Be>eCeyN3@oHoq6KhG$*zj2uRfr)CFsE!F^N%g?Y|Hgayg4dW_ z`hP8R5!^jbm7Kjhq&2bXY6BBBg6=TH3|$deGo$CdY5gzds#=Bi!RH^Ds7cIIu|zkj zww7Ozi(Quah0v{%sPPF9VM0SnoY|d>HQ$x;=+fYJO_N!f(t@$iO!Ni5B#OVhe4$d# z@?M-l#75)owUut@2i z+lGeicTyg#x1Ae$@rGm0GXh86yS${Q<8SBSsu?cpE*zEZU_vYbOXHc9TC^tI-lGxw zCgwIa-RoqcE=;Gsf!Vd>8^Q|fr1&>v_haMtXDbUjkKxt3ndmzc=7oBIqA)nm!`j-L z^76hRpQqnVI?sPnkqK|?1w=3kcndBpQ~#CLp;-H^cB^9a+#g^Am{838#l!_efdTt% z129qly_EnPntwiisc?RF>dw3}lKQ(g=RT%N7o-H7gedcKB-Mpi9}Y<3&K*|R*3U%0 znaFVnGbqW*KVwRm%Y(RVhW=&uw^jp8^al=sub<+dVGB}@zss3vv@pt5KaKe}WGr`x z3H>;DPMGzRcpATIOU(7tlLGUH>|rJvVZx-QIF7|dS-rVg*SqK0Q`2_0iJ^&6FjGwM zWPgD$MkZK=c*D$i+krUMtY~JUp8ZOJ!#ESBm?wZgm`mUce7Iw-a6#(fp_B15FAL{w zm;^h3A=9Aj|2Ay;bo!;bK~-(9t;0?%7n{F3-~w_Z6^2xd1`+`s#OUN z^?&flE9>ap&=6@z$GA(#>RRMWNL_Rpc1tv)t^EOea(LFGs6 zmfY^980q0nwI%WV$h{l1Uj(sGFkECRMbPk2X*{s#X!ymWl@d!$@G>DR_$>q2q^aKa z?7_Ai366SR`$5XWRiP|&g9Xhq@o{ha6`fRjFC5MBK2f&pZhu-B3uew>)8VxR+lFUm zjd6a}Jz0_E+7Zq|5iH1HB3amY71kER{5~u+4OH4KBU{^A=xKa9pw6i@iiPGz1JT3* zw~%wXyR1NeW%KP%vh;FcBA-}8=19BU53H2G6f(0e{;ys2pzKW+iebT2fjA&2%`7I< z&+@a4Q%@&4ysN6Z#X_+xsGUWS;VkMB0}?rDv!U9R$8|}AznbG%pxN-;Y?0~U*|x7m zO@kWV?b9FTRgyX1W*k!suzUEs`G@i3z>HLu?md=n8cQpk zC1XaH{6>TZQq{^6#oMezy>r~tg60ia5bv|l1CWHNAUSsI(xBynEstW^8}8yIzc%jT z7>srAb@)^MzS4-f%fVB(CxfM($0ZXSuOd`1IK+?>p&E9UNy0`3RJT7MGmauf6vb3JDWM=#$#H`NgyZw!yrKI^U zHuCd%82_Hci5|-t%+lO(l~BBI#_D4AtEDVd2K=Vq!KhEO8f=}rr=RVbqHmF?MY4X* z(tE*z)@3yfY$S$>5)S;?c%|bOS{SPelS{9hXR(u_-g|LS!s)y@LrF@v(P;qH}q^I$q zOQzLX<%^G25LN0w$7u?fInZ~Pg50=c$@ zSVUX_;q(+Q=P7QCYOt3YUD1%g?qV}b?K4ZqkMsq8VT#We`NK<3n(tf^M`gb~l^VGn ztbR(rg@wLiX6!X)FLhOv6F&R+ji(KrUt3d|rqIelZ7diNu3^HLMPHlGmV7;3VJq*t z=&><9x}Bxn!P4zy9jGF80X96x|9YBj5yt)K&Rl)w)^L%T<(V7bSg4x?uW;65+|5c3 z43#XuW8r>M;BLO!Is7{d^{}A%(#wL7>fZn)4<XC7?- z!9qVVY@0D`=TJl3KF?it(<~`-bLtfj&My|~!%V+eif&f+;$O7g>dcPKZjtO<_@f^% zz&J1fsKO7GC~O1(!iD$=gQa)RzCICY)%z>m?;$(E^emmDrESq zi|*2%9l-mw{MTO=8VA=y6C1;U=~0Qn?scli0%sqXd}uc~!9tTP2<)8LP)QZ{Z2^3_ zLGIbhbbN1{K-?|H*M(EwX8imJI;Haa%Dr) z2KIk%s%co@rWbfUXLidGVeV!(HgabJ`8?Rzd;CIdz(_@w(6goQMzZwUAe~er`iBFY zppk{rOBvbrdv~UL|6P=}(31_*HLx;jU&G~sdJ_-3XSIn}w%z{V#YWz2dS_A zC;s>IDndWD_^kr0WIxpzX6}(#G^zT_YRTE<<6HF}rTDW^02>8jfIG=f7;rtWlZszI zAKQB<%+LF1BqQZITP=tUN*~OIpGk5Ax!t)6(%ZY7@)ghEs<>K{{mJwv*~N()yr?Zf9I06&Q|GK6dOgeAvC_p z#u_k2up+s^fDvMQ-9BT<)pOZO1AAlG=oTAdV{th~$?3fF?Zd5S2m4kgl_f;!y`XdU z+g+X;uH2Pe_;alp`<&-sEE~mP%&Nr%`tzpgTA{+eB+d3o9gStp)Cm9ev$5W@(N|`za^0Q3@MGP#jlXSwHRE z=Mrhlqqow|v>e{{Fckn}@#(=QNoP;H;%?fy*Arcd0~hYGQ5qXLh$}6ui_T}?jjW4~ zbyaG9x?d2N&W4|mfjx_}!rJ$2;gPo|?$I?k^1Sgr8$Dn{xSIiD2oqwM7)DbYWK}2g zE+=+NNGGpSXwGEAj~T%8s~vnQ$Y+YQsdiNtX$_IwRBtGn2d3@mW3U}Mv zPexxI(%(Eby?~7hK_sR!)g?abijPt>Jg;bT}AvozxkN!;dvo<|tqi1Z0AH|+4 z)P>&@x(`1@)bsG^yZ@%Ulzk|dRR;Wo%$u|L>6`#zv-UY_ADVr?)U#X9+2{o*2vsbJ z>L!oRGWYujwkqT(Yj5d|ENAa|$=1J52_{!y+eKUs!$M*YO>N+v%gbUf1;Xk(uh{4{ zrl0MYEOpV$d|TTk!?y+(9&#ezYJ9^+Z`sH(0ZR!G|K(0(d}fEe>+PWEbm{Hy*s7Im z&G&5G+wl4!{D=alx5C8wzEQ*C#~ZS<&k+m#tJtWTjcP#B*w8}@AjC4neKe_hts2{S z?)rdzGHbnO$XC>|Q5^^YP3+L^F1QVGFJ|?BFPEKox=rr;PckRcVp{ilt8voILSFp4 zyzr$h++JrU<6>{D9aqP;*0p0p#0I*ntFj1K5mD@}N>M}+=}48{i*x~{ zh#G=kzgHnUk-&z`Sa)w zbB}q-5e6M$a|52Z6qB%11@ZBN&!~0{Ilys$n_<@9xnWBQmUoCx&tGjySPT~F>1kbf zH|(cj9OPx<+qLvjjM?=|>+iWmIbAIUUgEy0P$^}havRHQAvbDV51pxf`%b4EUMl#s zu6oAsn7XbJ1A=F$q~s2+AlYZ|3Z~MKhtk`mI~iUu)24#z{0fuUXfwmu1U=cHF^DCld6&22Iw*{5rC;Gm|xA&Ub4bO^lYvE z@!`fnQwJ(FLf6HsmUq$yipt@%{n^0uEz`y(w7enNxA2NdKI7aI!?I77stis~CiXmI_=TAq}&n`Mn|Cm~4!(7$x+j1r^Q%=PdM!)ZOzUbVM4K{6s)&2VU?Ct_Pjkp#pU3ZEsKxM znLhTR8Kq%Ptv*dH?GT)y@Qf5HrCTL56{0PYa`&ZDucE1EQHhiKL<0*->#7{E?}nEv zerP=DHs+(zah)BuP2^b$&wjvWH>s&@OEVq(%iK)uf*V$hCAIb(rFouOU`4HV?4PATsF@n8S=b5&cr!H(IlY=&N-G_0w`7b(_;V*A=spe&&|;JB}W#10-5asns= z*jve8;+S#AGB|OYU2OljpBLCutOL}F>qvp2m_8VBK@lE2-ud=~>WPvGA2#Ol15ax^ zQLHlsQ(T3R7kXccNe zYU9>-@iB?|6`#YkBmH&>;^6zc;ScAp8GIk0qF ztaYH$)P|~}tXRKAz7*?6!K_s=ov(H_%9f7oobbEy7NXvQmR)djVKDvyGcey17UoYzFqvQ z-Md|RS2?As_nvm9v71P!>6+TXhZoQ3DmMU5o~51%P%y#FniD~r4BQVMaR|ARf$Npqj!c|M1B?CwmX*mMdE z^>08;jrZYgEZxf&`rUgrAYgOM!`e$C!^asEdlR_9DaYz$;o*(j2fUs&uE>AE)9|P% zUb^T}pM#r_!JJ3aHOK7RysyGClUk5Pt$r(UpHN(|KsYEVx59}fl8}Q{(`1qO;HaqyUm#{Q8z3ACR$3cE;=c;|aO|f?EW6&sI zzy#h&Ad?h-+c@P^iwM)y4Fh*B=y=vCK>Xm7{Ar`Dhh(P}UT7DZ|M>*h4L+UQkpD~X zur@)W?tyySjHHqRXdJBcy_;IpkDogB!qM-H`oz^U?I_ecb9(H#^GZL?NPVquy>VpQ zQ;IFb+_A#UUUO~#k?`Z3*0CN@zyAJ*Z+;P_T1+i2p%$u?LVN1N27rDUmVDhEz+fGrNAaw0VPIle!NU`PX2vmx~As9K<$)jimjml%P3l4R_V)$CRuaC+>b6PaVS5c zQwy>K!q?4d$7Oww)rPAdOMceRtk>K*8(&cDOA0XDEv&e0kJ6v}EVS}WHyvu%u6LNK zr`T5%d-OF_V7opxK(^;r6Q4F8FYIic6#FsCQ_w)MjTCHGyixQBd`J|xf_L)W_Hjxn z{=IdcH;A7;t3QA`w&W!_ocmc$$*Fm_>{AxJrC@FZU)szy`mJ1VT>bbN=01P8`R6rJ zY%^xHR*XHeAqp$WZ-gUX8i_(}6%GCX!?T#NpZCm?l_n$S|MHWV{8fdX`>n zNiR@2N5j@M>?xH|}<#-EVY) z)#@kmRa-l*X+6I{gJBqyRcvHAD&XP5taHKgiS;fsF6T>-sM;xP_R2#|Q$@Dwr!1*0 z*0k0|`d3fU_|r7nuzcB!gU{TH)M8`eHEIMkHnf&4t)XHEWdWQH+o~w?T+x-PXZxHv zznz?86a3pLdzy8i*`o?&{K?FopK;m!RqC#Hv&T8rHapVGoamML{8p|rE-HAzf?)@( z3{hL=sj|T+eSPqe>L4$#-e{?}#sSmAA&E~u6|5doWNUkg2Fo26NTOKS*{O@_;@+s2 z8|p27340JHJf@kr(yDGWoPReJy3^QN9z1*jJNKh8**dPfW-lN6xwBu<@%1IsJZRW? z0WRck8b31vagaQs&r;QNsIs$Iu==>Q>zW@8*gD-Xv237H`E|Dre;UrHK>WHRG6%1>eJ;MWuBcY`TNfNavw<}0 zFH&$YXxs4*A0C}s+pE!I``psQGlS?AUA$l#w8XKasBiWmUT}Dj-S(K4{9(hKOG0Sa zwg8G#>mN;i@WSoar#EI^9(n2grcjy*PCzH^m^U0sNu71Bvb5eOm zN)pW`)1WA>(S#Kqq3}7?Jvu<3+TC6G_s28aCdRAu(_Y7nyH2wyG^~zSVx3Psi+paN zB-^(;RA;M9hHj?PY#I%CMzJ1XWNu#ea={qZ<&r5mZO!=sAtF?+@oCrntqWkQ`RTgw z%(l{Wn!Q1TCkw@lvp!05`>}g|=1cCcACucJVtod!^`3K+Cam$sFSfGT3l7qdi~GRE znRjaR@9tRN8Mt~{^2hX|eEuf^(i$f#f2^F<_^>TuW@50z;3qWrp#@@bLvI|(9!{tpO_ zs(d=4fClsc@gJUE-D+^G@O4)7=JeWCXGcG!*+R&qTgE?TTL01e>7I%m;r-%U8?yt8 zXttP!rHN~p;^HAw9Oq83dfN87eo-D{n^*#x5szp;js4X!wA{PIWN^UvVCwLIQhHGt zy*iL`p$yR>bC$N2(`*Ig(QSJ@ zG=8Y{<@vpz_P@V-cGye4`f&8ZIeOD9o;xpU^SUwb{mCcKXtolBouhCl5a#swmt4z>CRXH(h20c9a ziq^~*y#`ICa9*RB`yKYI=55{Qb~_|8^>Ejw%+(FhCqO~a04(2vFu=OB-a%b`#iH)Q zkPkn&sz3dspkM8t(kB`CVnjLm&V1B3%Uhn>E% z{HER?ON&oFid4=B>HVGt53CTMFAIELZesZ%{*GJKNQYaYEg&{n_r~ST8gbX*#t`4Z z`;7NZjAcI1Y%2}Z4u$s*i>}kl?ADOWJtB^^9$sPb;v;A!4B~5p(nk4)7@ut~UcU9v z{Zo_MfY&(QJ!Bhw#{Yi)^TORjuS_^#_9I$jt}#KRRyIh_w|MTwrrA25XwA>`3XOJP zslMS(=vV;IS(OUL)%f-gnSSG1E157+2UHRZq3fWbor~8V(8%Az7G`iBv~)sMK*M!! zz7_4#y8LePu-B;{2R(1E8IfRuSW^VRQL$(;$1lm-uJ5(`w8w;;w}a{_GsK!Bu=78S z;AGapZQ!#M$iJLfLoDm67U?4dAMb;=pUS^$M^)9z9H>?os^R8YvRL3hV3ExmCT zEwe=6X?h79qF*|J*QP?*tQa?6w%>2?ZJTq5J&#~-M&Z5Vw?DF{YG&Hk5Ad-FtXI zO7ufKW)<<`Ecs~0RE z-i_L5J;MjFz6gd$KLlshu|F3$;t3TBAglZ4u6*=M&`Q}lDerLmOcarKc)_UBsm;Nn zF=6}Gs|)-Q8-QR3BoNB}#V)3)@k6Vpf%@>iKC|II6T&M9Eeb|!%jgi`Lbu~YLo_;v z8~^^1fu&?|;eLlR`L{#SiZC=H9I5q=fM!sfs{kjwkx-hQ+w^sh>cWCe@77g~^&cFn zPrX}F$lrec=PQVff^9*uLg#W{x%@B#_%$P}X25jS6=~5(D+a+3ZN&xrX1FlR)k~vj zZvWa7$9zVGR>UGU4vT3E#z_N)FI^o`G`rq{JybRTcEmEs$wKp9xzhX zDu2E6dHD2lwaC$0*;$Ca1-+(wurW}+Gkc=-GI_QjdF7FJ<0oe$HV608Tm-9?2Qbj6 zI5O#S#uk-Z*UfJZ*tqZPvOL7zM(iD6G>}(J(n2@xTzTbMH8uE%XIj%0`}(^G+(6v} z78`(xJ$kUO^tHKK{>+~(JOktBwXydRn~z|v=>f=0_t|C0q&T{<;S?p;3nx7{WbF>9 ze~1=5LNIYJlEB1WNx-|%qIcnj*IM%&zeI~!j}iL>!TNAFO4nAt{n_UA+@1Y%5)HYj z&IO2liY1^B;b8#~$`^n0!y8Pmz8Ysh@m5-sQY}FmxuQ};nClol5uw(ClEZ=z^Hd!@ojyk%O>inhi<3pLpR0V^>}C7$)&~~r zCfwaIXuL`}Vk;1P^cj`}xLUv%d%e(y4Ezc%T6_!|a;{`o?ONsH{7sce^EqOx5IejY zT6W(-@FN1Z(p-@t`(MXJ^&er$Lzz; zkJ`QbM(iuZzJ?a;K60JK3um`W2+p2@D7tOubfY?T?Fgvj-4ClBEjZD&EugHIz z$kHKG-yrraf_buH=z3E<{#DAUNTubu-m^~6%}Q+ow&M=+Ib^J9i9zV2I36|W-9eN{^W6jEbQF+#Tmc7$HE8kXHL`{ znRQEbyGOa>`rZrkg)In-mmz+B^Rg(pe#p?OD{CXh-y5O(0l`5mh|h9=ey=IjN1!!Y zXKLc>B;QuVenc>9P*{?rjyoj2^>+DMgREXHC-3A~w;}cuj7FqFfbwj4c~7oAxkzxB z7eBvnEcuMsc0Am4AXt? z@0+IPk(La5j)A?x1U#Wx`upOSOL~isjaAw>D>!GWdJrGgC6&)^IecmIZk512N1R98 zI?uqG0(^?vCKr5GQY-0I*7-i}=N1r# zC)75Lh_hk9Eef18VLiH1&Kmd2@J`bhds%(pkG2eJ$G}*j*xceKg^^o|r?%d9D=>>o zJvPanVI3H7OQc};l?_VKkB-i2D)sBDVu*Z6M}~D`Usii><|Ss83#01FjNo*i=4SJ^4O>!cvASc}oYsPrsV!~{;AW_ep!fdXOw6jlG_R+D z_pK_-+!@w`fhmt-d$mE_r($>goeupS8TFIHBbIqG>|scAf95Fd3yGCw<^xPTI?Gqi zzs#^+47lgBLGaRfi*J_cLHr#imO&F;93raw*sbz@Ja@+9sPaFS2+E@s zYo9%mn#ni>w}zjN2rn)W$sq}QE|Ktcf#9Arw)@r|7Bxs#LQ1~2 zA1{&$77{n1^c=`5=L@+9IP~BXH8`Y*S2(aEiMPCem-c@S@%CuJCY+r%(aQT)y0HZO z?J=GOckw+Ec0ykNrQlidA+J)JaD|XJMP~=mfiwR^5}te_@_XFDD`{}u3yZI+>XErG zrVu5#BlF@CVVElPgmw;b{c9q)gMPnPVNVr3NKS#~q)C7&Bek@oX!`(^#oiGdY+U>%IbmoH7} zk?%dszz2LH1g<~i3?agBu!DGtV?mVXL7+{P@`=>1>+^l){-b+(WDyRr{xdnOu3`rCEY-`$Rj1^$jfB0 zBn8BT0M!Ht`F^Mg^i8Inny1yy-ZjUc>`oMw^yTUv_CIdV>QR+jkOSWz6ju;dTxX#Wz@T#iBJ2OD)VulEEj0?? z);*|OV|u_S8wj~}f(R*L2mg555mL}%MYwWT`9v`e;iK~IqTqr+zpBBp9|Xi@!MADv z3mb8ZQ0#4xC#6d4f?O!ojf4wHgnun+3RU#CwOWsozrqE0BOu;G z$o(JyNywJKzZ!m^g!qi#bqa`LXl}j*J^CiMh$5_n5P4QWINqr==ui^qV ziU}Vfk@me3eCbKuH%G9FMFIA253fB6m5C|E%ZUKUgZo74BqD<0A5WpqiEx}Tur3FG zxOUg%Y9`UUTp9p@a7OzK-spjCvHK0B4Gap*oxe)bKTg zf|;rj+_mj|;tlz~RKik0VbvOhCqy_0__9CqCYv9ht?#GMp7|YF* z)(G!PA4%VnrkoP#D`AE7Jf~UsR@hFy7gkEErCp>6^-=g)*d;U-HA?L%Cn}1Qz)9g; z61h@uq~4-OoVU^@>1FB#r-Ac9>PuO3BSbOOC2oQ!MU*bOMg?*+sAz5i_d3@}mdACG zdB|>4cd26TJ*rCNBMXoP%3g?qWTCRFGBe&q-W$ibv7v;9{2)@1CQSKzaBzKWN z7KhWN;!5!qxSP~~NLuXK`zzW?IL`%+)w*=NGMv^DU5m=IOlB<#uL8ZVR z-H==)9Z6?0N8*mWkPph0+?M#GM3~zoqbCx7(p(rwhL9DKDoL%xLf9mUB;QF|C9&j9 zl!dZU9*QIHqa^Y%auc4BdI~M2Ddc%+8ks@9MDEg8=(4l{HKAq{CVY?Hp%!$TY(q)H z1mQ!n6PYjtWFeU>Oc7c##bl_ogtTRHh4xG(Sw%)mW2JG@BB2}O&Rk|Pq~44_LtFw; z6j)L)n$(e*6yXH2$4#K@rGy9k6Gl?;C_-wD6(Zq>k(iZ;aEBCsfkGSnxdP4x!aq)L z!XHa^ql9n+46o=uOF=zNp;UE=Nc={dh!zov|6c{9Z_uO5$Kn#zpajZ6=p@RLLK)+L zW_O=V!2fEHgOEtVMN;(BWQgMdKnARw0g+J42#$}`1}lqfc;>)hS%5<$A_cw_#mns_ zg`zAWAZ~4<5K}3Vn=*thRx3+;ZQ4O(!dILcK2d=aMac*g2@(HwReA!4zg5(f8fzT!g;Ma&K=X~1;Jxl)A zEbSY3`X1*GGrleedGn$KfKp9ph|(i0a4>|h6a(ihDIYjM4G}!tCNSg7hk*+tS!?`} zHerJUP=KEBF(*nuIO6A8lDI?@abNR9cLxh@EpVN%PYd?TmU)l5x#HxYZ$mM;CK=&{ zpXU)t`0IHEv1 zC}yKO;JFtuoCx{49kFbGxox~hnV$dmt+NRVt)mMP{R$VqK=gor2_P^Lh=mL~Xc3IZ z0z91OxW^kEFb~;ldoU zP}DueAfoYCQ8W>cLv5nyJIMGiiTsy|%Y9smdMhb4&nJO#B+@Y6^Jy_9$2@k)JE5;#c-ZC5}i3n?0lKQu05PQ5_1pu=W zz7@s;2MR@1+$LG5n5cmmu0pZYVLH7CC+WA{>ubgF^-S9blaJsKep2G*|8sux&!UyW zvrUg024Hf~mZr=XsR`o$S9I}#d7T4_nM@D5RzQz4g@^$13SqQih~%&Nj{Da4ApAG# z`zla*^%b_P6@HB_U;GEY^yYL4{W(1`W@ZnR=_mRcXNFT4X`0CX6Kh(@Fxs@1B?01e zko|=@UB5z|uegD-8qvQa&w9X~ts;y*KZ^cu{F%-B9s;$en`Qr?&~yA&*|$j4O#T-Z z4WR!)qapOycr=uL@-LV)j_!#{gXHNwkZH}oVACS{KhbF|?ILj(d=H_v(2er9fKq)W z|Bh3`CI1^zt@sM7z7YK1Xf>St2d}n&gIKS9g;~o{Pt^M6E8Kb)kZbFAvFmw2uQ!F= z_%&PD6Tv1ZFl>p?ohcQ1enGNLBw$%*+*3G267Gn4L>lfec7iA#k%c1wg!tl~shFn` zCLDqwgaHg2$Y=#In!$`}2s0s+nGnWI5Q@YSsZ1Wu;G5SD>A-iezRj?ajMf!KEsD{M zW)_7oNEX9@haxae?7q<(e-0nUGFowr8WqFH<6*Oh(Yng01u^i{{Wg)&N@CPF@SM!B z*BGs+zh02n88(H{N@Xd#6%qqDVWdq9F}YLZUrH zXlT$tlYY-v-k7}V_{$?Ijm)vz@nC>9w0xA;EoU0Wws*{{80>%X-LPH>d}`{(q(pPDJ^=m0uMa5J?r z*C4n`MVbT;iMi1xQ*0xP6fnOr%xJ^OORp+U^-Vg24kIme1Zks%Is{L?72m)_po=ri z!UCu|O7Jk}TN-aXM({SWu{6Lb!IzEWyi)F9l&*@-XM-YF5^ubmXaaT7!~>?m0bl4rI+Y zlHvJ#15kDRHb#XHWF1iZJ` z8zu|S2imJU=sKeFXx;^a4``;qQUbhX$y_9OTS}ySO9O!f`}BB&%gV{WL$;O{8Z*d=o#)|~rytF!pApD+B_cN>awj4WB0A+s z{Acdw0;w0gA>|uOyy1T%k=TNVkp-`Q>=Oq*Nb-7cI7|4o(1(b8iO3IL^CyDpNQ|x! z39bTj9@dn&_QiaMvYf+{qtBvsVORiBJCKNii0CSuB^cH-5QzmL@UT$C3WXg75|NGA zK!6!6Ug+g0BfnITdH$8EmB{TH5rOb_zLW; z!~zM<3La)%ceO}ni?^MBYogbtBpriDqE-}9J(`G=S=WicCR4$LKHh-sMM6s{wmxSg zLCd=H$&=_88E&(#uf9n{F+^ZkERo=ey8&EVPM@b9Nhx%%INa8`xlq7(bc={?6Hy!y z-GKwd<3wB7C&2S?4v<Y?!>_LMMU%rU!WM+ zZ^#EX1w=o`pEfj8#5V14jQjO1@0TzhOS)dF+4X{mN zDkh)2Sx!W6iKv2z-Vsp<@jbj}Av6#}90Fo0C*H$-R}~!0P-GzCVGeH3;!-7&Cbi{9 zJ4~i*(y1n*8X~I2IadcFx3D#+heN_{hQbL4hlzrjbN93zATMh@Le2=-9o|4hjkqSA z;bHGDyWH1!@kO^sm83ppFq`7TKb2|Sn@ai>nH!p@-rtC*6BMWm9+uibsOMpo zOm*F;z`r+$J?vwe=1R-E@l)`y6|DtvT&J3Q-raIS2M@DjJw)`Kh<*@JFA-_?!4~Es zV`Gp)Kdb~lZZaJJK1r;EJnYngYX=|qhpuV4dOU)sg&F@OqF+Sxn}`O9Xb7Y@3|zMm z8JLa0|0YtY)hNgVhZ_R%7!VGIfjf6Nm|lIsjvuBi-vb-mEOhEOTKpku{Uz#-6SbX4 zU>_`J5_m<4$lR8%Z!T~l5!^u2TuB5kvB*{kq+=&t?_)JvIyE}3o!duNknwOMDZ7(2 zJxD5^B&5Rff)^mNdcz9>DIeEV9}>Y^DisU$ZKMK>x51$CdaGYWzz@3?vscDOz9i&F zLZ)^+Y{Bs}3f?b{tTFb>&=2D`H2)xC8&@5-G7OSRel?#fi`@CD%Acfug{0~j00*=e z7}!Yh0|t`7PuPmg;9$+SuKCg@YiNHMnv{F|+td9)Kn@9M1(Sd+e5nZ!v(-JuQ@U7Z zyf!y%wsOU)Ss^5yP!hUELh@lGFaS_tfe5!N76(&_ihX(en{dIAXz4okYR2nu5{e+9 zND_)7K@d3YNsNYl4a|iTF|KCn*UHb^Jl#K7H`sC1^4Zr(+#4j-nTG)C5eQRNl5t(5xAa$OU+0K;0+u&_F#R2aoi^EKt+GO zq|0jl)>P7=G!nWCl->hw;IM*qA0%XBZa#5>W40;tXOjAsT+2ad_K}$$4@l~vq=z_X z4F&cBLu{Kw?B%xkZ)fPApfbHJn>VDBPzKJ8OjrYaF2FET9_Bh@&4cl?nVUcAE;l$f z6s_=xr1O}>%_6C0ljL$ps<|ZPCnR-;JQBfwBFajI6FB23oX3tY7UYAL{9h=}Cl$cv z|8Qd=JYXQQ5@2tP3Ez&-cNS%iL@&AER;gb^(s@SW7L(9(oXaoZDBwmw*`=%!;Kjs` zcrfE&I~^-?=DqLwlQDBzw0`oe@lq0cNdk+BCGoJeXKZ~HZ#vHtjsK;m?)mhgjD%hR zm&|zBhQD7HYRZq-oSylyS~W7a@-+#)A)#^-_@cLPxCxxRsbWHJAV%OK1$Xzb?^EkD zinaQJxZF>nlPIU(kzK`a+urR$?fYf12VC5H8cC>$1i|M6FvebD4!&zs z9_I95)fy$|i|R@B77-VlNopTShdz-GwUE$f5_s!-B-R%a!Bu4W6?74V-U{as3d{{9 z*!A2sKzsblH)oLYc@rhlc}oj!e$zBcXnr`~i^3fAYZ?#3FsThNQ^C@tJ-BkWLG8ZhXPy79O)aXneVQ{_&4qk8n&?V~ya2~GZe*~|iM#+im3+eTsqvII zjHN3GXL%GicQV(5tmWtl3-a-t2kf(egq_zLpOLK7qNySIw1u~AYpWL-d6OZ|!TCl{ zIi&plaabjT=WT9@wN{82ZXJ$9VO?4PP?yBO`w@xn3ek=89>H>eSwCRoOfj<_!8k9lc| zT0&E$i*J+F;>ap@$lN4SJelD4zhi;BoFF9Poz1SHcSnk4WRyq-u_pmr zgq8qeVAJ$x^ukMT2C$=B)u(6s*so0{qZBeqC4=8e15TPqEzI#;_bw0vxso9u2wX8) z%lqA_RWax0(RJJCvuC}%M@IL_=m8l$B%^cbWP%$&whWvwz!0iDthPldmlo9fK@ zvg`xN_L*e#2q^0S0SmS``P(-wTEbAi_`>#Cc-dnzH;b&BO-4CnH18NImrU?75krn? zY5W9!goMuqvU#j{>8H(kqt&*vza~dUaj$pe0mI2CpN!-SfHpjL;7beP_z+nIQlSOV z`EZlp^O=*~3Q+okr#n4kE*6o|LQPElM*E2o`7JKTWX0)f)ATBykx?-jyaw)h<{Rxg zcZF6pJK$zs>y7f}@6XBT1sTE`{#nb5{yi!>ON-CmBPQJnP<~!QMy0qgUxKXo5(i62 zdRFz%UGTwa`iQ6(8wkx@0Up$25Y7g^N;&-fGA%@oA2NV$Zz3tM_WCnd$ztf=~Z9U0Y=Q3E{Q z2(mH-bO}2y@wb?CC2^+j!&FL$f%R}!6B&IVLjuwadJmbu&`4-7VP`zdpwxG0g;Hx} zQg`278|#=?AIadFcv!0Y#`+z%lkab^nH_rmnnPv|2~+SXE$nU^YyZ7!s_QyO-ttdm z)PkE6Y*#r{+(XOzxJ^s;>n~Y%C+cT1`a(uu$*2{7pbgg{07~s3OA%@k(cc1|GE4?5is0I8(V?3;VL6T(M;5E|`-+RZ8 z-HJ==Bk%1es|=9kev%LUA|LuqMuTKDLJzqC!PT~& zllH@8Kq5R$X;w?l+!;IXe>-Smzw;8dY=n$X@~}8|#bHJhVIMDI|KHgSO{t?~G)9I5 z;18&j)CBw+`0%uQj`FVCBg`d)fscL3(!XRh4qT#u;yY6ShS*r>3&buIf(IlQ0?4p7 zXJvguzC~R|?baVufZRoVV6BhXaj9BwTAO0cx0-E=(X;(15S4jY z+2T6Vvu#8Bc71(Q8$ZXv+n<82P*4B`vY|i#b*|?8a>eZ#Mrd3t$h`6%1chpWJ zl!C5NKyAV(fbAh~;bCb6)2nf{!AZ^$A>r{MX?5Wg6hT1?BVi%YL<|F`7DWMDkyv0O z4zDrK6{g1)dk1fI;>}Qsrl9K-bm|5y2Gs)ywHLZ)EzPpGT9;5Bdy2Vq#?VcQdJF}{ zQqV05x=lfG6m$pHj)%2Pgdhn^a6Sp}%YW<^i4!RVZ#WhHiTRl%V8#Cj(-KxPd}v|u z53Xa$v%L33#~eP!UR>E!Sv$Kng@RHkC=I9W78xv=5M}Y^dTr0%XGO-X?tcgW-lgc= zqiEfyXx=0}0Ezuu2)8cG?#&Xl6+3~t|@?!hP6qJQ)1-P8<+k7R{ldWW-$4p%^Eqh8fNS4gQ zc6NEK>bz8q#nFG84>#A42QXV#WGV?<1Z?2a2wxL`KSO^cZ(<1ye9%~wQ z-XgC<8tVW3grb>8(R@ldnop5i!YZH;TqS}+TqHuvBG6@l)I?;6J-NF(R$e2%_iu66 z09JYL{xb?H23}{9f{9oyW3ih0&cOrpcqupdq|XrO%nOQ2358oqQBESg1TOqnrMyj= z2#apzWj;eLCy&h8KcaJZ-`C7CicS)#kc55VHiUmWb-m@vp4x-c>yIVBqM+9l^oD{& zOdx?)azE+)(eM?cTpz!i3@8I|X{aYl=^8zz(L11`P zP{p~0Pv>gnzNhT1r0h*1Re?eXtOSrUSQ~Ne$X>~& zhJtD-s1A&Z0%>^z7$2S}{tIr6pp*`L3v&?44v+N*0|w7GTnXV^Ht=9;HBrz93Sj+a zARK^~Scq2`?q_?a^AbbqFTLKj#E5Lqwt4!W4J!cknwM)h+|M&BjZxqytdoDPEx~EFR z!G*l=^Sp{FON@weT@)x=@i0xbug~sp&zyp(WwmP17Od)~pdJeP4kpQjm&*GUowz-Y zyiA{y&zC0lr~ROyUihdFG##i0o#A0e*5+;>nwCC__0~RJneNusPk|84!~D0s(0#JH z<$aTR`$p@<*MnP#n9JYGf8Daj$HIGhd?v5c5e`t$PYU`)LGovQ1K*+648g7FdZU%C`=z z*)CLEYySHcyEd%YsvKL?A8H@Ea10$gop>)UcphD&<DCE9 zDw^*PALDdeNU$@V&vTE-H{bfOoLMS~7m=?}Q2-S!45SkLpz~pD!xtM0`Id_@S@(N^ z6$%$Zrq#xc*;f8u9z;b~sVJBVxy>kX447a1uz<=uC(1BPITLUH_Wk=1s@gCGT=}MF zMQ?`>?tQW)FLp(+Rq*RjD!N7m?-B-_Fc6uW|0|_JQnFZ&LQUABuX-u3HsN<~b2t?# z^DvWz#=p;f{hZ(QTivI1@}sN>DvG2+N(bgKx;IDLl-NsuU_v0h_g+yJMOBZcYF(!) z-+<+*Ecl0gn|fR|!1mEV^Y`_NA~4qjxP66_M{vwEQ|CUqd6rl@7qVoDxMwT zd5@~?LB3C&D1Ms*n8F0LVY^03gnE(gOSb6V`#JRib?-y!p>(R26UmdDK?N6VA;^T| z2_*(N_<}d|lr0zZnZ2s3oO@*H5xYBY9#OR)Q;%g)b+V~oEvy_WU=_U2l?$iko7)KP zQ?X9vjzf3y%tpr0ea7AJklDpQ)-o7w(MoVsHC&NEnvsEREak=dn72{!&{ z^8Ql7@0dr$RP>w*ZsG+{D*RXU;$f7>du161PZe^Dev$*H>@X^!>XcHsFR9!zDtZMk zknC9T|1pRI!q`wAD0!-6lLfRDk<<6eSVzq$h%){kxsHhw? z4*+cE2K`Nz*BC2ee+FEWu`ZN(3wlR|y2)uC_UdT<7S*-6CdoVYfA}{1r0E?My~nk} z2gGGQJ7*1{DW2h_W6v4VRtd(_r8E~(pm`+e%wCn5WqtEs4lifZAc zq&gr9a0O&x_Vu7h5*vMqR49dx4_*xysau?9C}#Qu3=#j>=ROZ@pmH0j+$O4KIQaue zMj$p87~%;mrk1(lo_oBYW)jctupIZ%^=7J0KJ_EW3_P3wvsqhm*F$O7-j`QEx0j()14Ch{$Rqis4YJ3#yU4`r{;a8a=%b@JxMO4F$xw{H&|s5vxfd4ynI2d zPwAeoRMbj^x<(_A6s+XZ#EJFTl|>%7Xcm$1zKyCKN^+rM4(%h{b3Xi^=BLlapFZhT z)=otoRP>Ds!1ow1cVT0ztAFRo^VwxV8`;4x_jgiJ7Zr7bQS|^p26!tF5X<|Wd5*gq zT{q^;>3C&SJ9(6ZSyjo6Y+!nCDvE0t%?tUv>^l|xphAVI7icul$2(#tWp%ddC+a;l z6u2E7T(a$PA60vp(vKU5u@Fqv0qatpo$+bu7IiU*DBNz?VBDSN|XtJ~(kc-@=auwObyhqoRE0qp$y;v_b2&RTXLL{b}e54F%AU?H9^RfQR{?o6i+~ zK2v6+;I=T&kQp6F+aE+zxk@{fL<**XpRf=ZdXYl#6XQ(-YH5w!qU{L8vfuYk&Z<~6Y5_;uG0vCc&dSeVgYnhCUCvN#ifg_xAshT>vhUin5NNsgNAO> z(85Ma3=KNDmV7e-4z;jJkh-04I8#(tXt!F!xH}-0hHlZ2=r+(`B@#gsQioWfk~!B_ zcCk`)wnAIZiZ~j&LjxpM4NRIv4{`rEd+BwPgoj&FE_q_{G^iOuN}(jRI(XQ{L9KVN zW<%gI#RM8kq@g4lRM4YI$-omRWEenL7+uxAVCAz(Hu6+Czj@tVyc8Nr#YLS4k3e&4 z{U#nJSwQ@&wywcd&Al`F@6ymc8aj2Kh8O7!1Xh6JM8!iVzpsq_G`93?%z@~# zjSpz(Aq^b&F&=h3dG`~R@4Dy?t(gIW-etWC*y>uvxX7k4S9g*5I>D24$7zttbR zOZbLR=X~<#?v&$yl8R{P84YO_gG>eXI6o$Q=9Uj$QwA7=uUyji?rO94I{lo6UeHhp z4H~|sAXuoKn7^dq`5~~6etzt=W%m9Vlf9GO*CoE3T1G>!a3Q<~AwYV77seiqoPP7x zCS}s;XoGV}Tjo!DLqp{>$cDgodcHSr@2Jt;CUV;rCB16j@|K1w;5_eedZf^If_Arz zeS2@#_a%{(+j|)7{?u#lX{eHhOmBe^HQ)O6>A?v@TGLL0sy87kzEy#R!JoUDs_N&v z>jnm8&TKgZ*;fsx9}Qk&^V)5OG9|YlBkEBZA?{uL>*YZv67-8&=Tvg{JeBCKp9zwZf7U zrEY8!f8@xgs<)KB8ksAL`pjzEX#3h}sDp;isj|L-x(O@=fYG55(^daBGeWf_h)+3Toi==E`or9?w&D(v0jq`C{<^jr)_P{EMdI_#4hDfCNo2NF%tK zn-76c;+vc6L*E+v>+*Mf?uJ)!^X+Q2S&!U54AamE4UOWv_S42eT)N(;6hD7FzVA?& zzYi~xl{^MkgdZ9-Cn$EfR{n6$L+3dwe{D-p`@0>J+L}60?_RPSP|&2E+U()=mxjh^ z$cc{R-6-(Fvh0_W6_vts{QAQE{QM6ZIny=5$S!n{4IlTgLT>(|hBX)7ZP{FA|C(L@hA!A}T`6&sic4fy60&egLvykAyk z>$&;_>B5-CJ}*x?TIfY5_=0Xgc|#(FDV{s5KVd6PKTG13ALyaPuoiE+iVvN;1P>~h zMgF1P;oD61@X`?7{iIK>FC9TC?|KGvje=U~wRdk_)7IH2x%knMKOGXbD=;4h2Ft^e z>h)M5HbHg|7GE~YQ2MzqfUXuuR|%qP+#yHOCeF3~<`nDD@P*H=$Bo>rKNEfWDjfyW z!A>$j?>=sxd^l9ncS6$tqjtB-oTNf3w$E77ksoLI-q-5k-VbY)9*59TC>=^HU>c>7 zo8AxyW1a+QG~Uf~TFJOZM`3jEKH)&6kys$G;ESP|%EPXGKVGMhpBuDRbhm7Ds4hQ( zu62_XNyiH>c%@8&9cd`qV*A_i$HfgAwhuQ2*F@1#G#!vgDLB2$3+HS8SS)FodvW;B zPh^c&3QM| z&bA!c{^&0e`^w%#UOyyzU0+Iq6#Mi7>oLgyH%xsXa@yfEI=V{-FL@81 zu!N=z#L3OC97>bv>HhwKcUE09AG%N1eL$CcNY_cH>txWOdcn%1Pna9b2s{E_NCj4` z$M8Rl24U~Ic6m80T=*$nWBmh3c0f!PT|Ju)0Jn$|NWx~H zbPsrZxlOcuh2YEyo5#CHP9VD}`E+P)^02|5-)&bA6=g4;UUa7GHOaStjtc1jbc=w6 z;4P#geH$YlHbx>^TlUM{wQ@Su;cxh`?-^aWn6CSruKWU5Ggb*55_GA|C>2}ooIi^lnXp=R%e&%II(iAmBbLGOgzFUn*vp^z`EjL(&8?>+uMQpCGCKJcUF$Vn_YGaH zoX&eo*R7!IIFa6goeIQ4DD67_8%cN%JcQB2#0JOIs3jIDAXsWX;MS zm2~YYx>g{udO};JBFM7wbgkobej=;d_J~}@;TrPlpc=3r8gy_>PSTRK?7Kg?`6=sJ zlRIkZs17F?Z-z81k^P{tWAcyMvqvlp-X)Xj>8ODY)#FA`Edi9I4V&l_%_9jE?FCXy z@~&KE^QzC@lW#k7-%Z_<{eg~}>F6UJvYRl(x*8) zMUxCdE)U=wfpHJTD*A#~1ud_s)(qN6eEd&3`b9^-L9OYKWsVV#jlz<1>ke1h#PK%- z?3Y{XGgYB%h`x82u3HRASv3Wth#~^oW;`uK+##crlgv6s=x7wwp9Zne*3o^Ce?Gmx zt91F_qU|fX#^~q|9iY!J_>8;@4koVAyJgeN|D-70sSf{3N8@xTuz>?en_(S!Wc{xB z&U%4OKV>I7Ix&zl1DTe=ahsd_JQGfm9BpQP9GfKtF2MWD1@7GOg;HWvZ;{KKYdvQ@8LI9iF9yN$UwaqR zOZ!nCQ~tx-!Pv^okN)|9Hv@bj4=bq9awd2zpc@+M`VA~uy~Kxsd>Jq==Lc`%$X5cX zPk8*EemUc2X-i|7cgKxcM1O|%6^7Dqx9im~oxrVN*H}$5Np(4hw4Fi?240MYDZuT|< z#tDsptYYM}^i|2tk^f~P)%g0Br#Aj1JP1I z8h{R9FqM@G`$ES%4c40Y1J>VXHqRkIX6foz-$&^$4=3Gaa6?J=fC#9&LMsbKCwJ+o zX*kh8X$#ITl_YGQH~l^XJ;1f*A%oyIF@lJXZQ(VL-(Mqa=N| zFqCgF25GN@JVOcB#@e!5+!a=7TztN2EqZjxOlL*o%>6$2gV zBeJqUIYh?TLHf$~9vh<2=plmei0qWJ=4PW?G~r_#vG){O~eE1ffoq6!(1>_KC{|7^;d z&qw6-Xg}sYnlt#dhyj?ChaD=S7tM`fa9Xd(Ov@KOR9C{j#GYi<&0;OA9Ld!l9O!!S zjDd<7FchcB!?3D|_>D5t3wEw^HQpv;`}jEny|3$wQPIH%`uk>5r= z-_d3;I0jPw1g;BeJQApBf;e=4ozwJum%HNgEO{Trju|Zs^qGOaFaWZBg%d*pI1zpY zV&H4~xrT>!v-X>{roC1DN{@ct3Vsmk2ibkYXZt57?ocY$t10xI(#AmTz-_z{zI$C^ z=i;5bxxK|j8NB+o#14k$H->5_19dUbylx;JFEv3O+?*A|=m7%)B!#t5)Iy40dnINW z1*Ol)*rfa&r~zL=>IF_q1c07+*t;rW??vv##&y3>zNEyv>Ggr!8OQ)OtcwY||I~3- z{-4e55qi3e13R%Lg^$-Pmi@EBLun|^+ugHaAEwV-y)r1yaC+t^&WdHEA8`W=wV#Yb zzZftl_XXPAtt4!;dk=L{2KLR2!iY)QsI>eyLuZhooI$T)WYRIkURC!O$F7bo{gH1y zCRxiIVxVELTHKL+T#6A3+*366KD-biI2#x5~5qS>JzOq#qDD zOVyEi@LsH4+p@pFbiiPC>mJV>>Ys9KzEd94C3J`XI78Wqsq94ZAvweSkqNI4?T^?~ z8lAq|Mg9w}rSG0|MB|JL6UL%=*m)}{DfHE)s0YVn7SZAom0g+0jfo6!l_q|A#ITlE z(Cx9?6_Oe8OxvBQ>%l~xOytEx-b}Q>hY6B^d1t&0r>n~Hh0P%0nV1iJo?zGHesaOL zvs%8|)ceIHeoW-ggaif;``hL<8KwKjPv6}0rT%&P?Y&o+D1eES@&4J@YgQ$!WixN{ z3ij&VSU<2mkconrP#6Iwb%eASsdcW^6Qoy2e+~?XUS;l0V$8;DMISac=bu@;M!069 z{v)r!U?vJ-LZ2lN^my=MiPu6K-##;v(lD3&WKt*-U1K6q6ntd9TlVxeYG$-Wj%nGi zq!X{gn1Iu+5V0@EPdEv79rs9Bx6-ricMsG2pX#`cXNmWNK zM<;kFUS6{6Lhba8x0xDoOjRFh4C4;0424?!1lZ#C9{HkD-9ygm*}K12ZaW*#JeI&z zPGrJZR1ysZI~1$OzJ>~LV^*Fm*@Lh-?`>D&!9eWQLt|+6Q$wD z>Vf@L>`ofb?cTnoK2Etd_5Q}2cbUp=pkP?b(Z)a6tj71#A4bALMXSO!xrp2^CkhR`tObvoS0p-Y7R zgR_UOj>s&?WFAgpurZU2oZRV=7QNN!r|u(Tk7YA;a+sRcj9fUtKYkZ5u$Sc@DwK~`dv4GU8XT}&4W`il^ydz zdjIb6K<$+Qt*vGOSJO^(8?pxJSM$vl} zMcQ4}nfvbfTc$=eqXI|~8VL*>3}B%6nD*_>12+tZ*uxv0lK5|Y-hoMiCdTyrI(YuF zV@Jqs_k#*r+kz??7?XS9!)(rn2On-_JQ#hu;?PVixW8=co>^a+kKVkyd@{x_>^&1z z;=K9=I&&mfY@d3bIJheMKJV1ITNU%LhLwwd{d{(N<^0m*hEZ!naWK}=mvja5`6yet`?-3+DLwB|8u8>H|phB zq9BL2%}n%>i57kWLon4BNhEzljF%o1>e0CGf*t$zQb$hE(H189%tV%7z=$AEhU-z# zZvnVC{rl@rR}vjFJ{^eloSrMCL^-H61~=RDzcEoK6EX{McOm;{Iku%9bjW%pdD;-} z9PrE;yZ76qeAT%HA6GT5yP)4;(fEXjUAlQQDdGI-CyHASG6yUVof>9B84n7WN><04 z4cBz8RdkI#7a3PJ!i0_;80z{H1?9dME^%^Z= zs7VWqLs^iP!Zn$Xhhx6qJ^p^)x4f{x{MgiMEEL8<;Vb~1eRyW7s}!qwuog)&;T5P+;$G+x{x&|rAT+?*GkzRwhMC`QEDz$v=q*l5 zuxS|;CkuDl`p^1teY17!IPoz{XPl7*oc(w25No)zKvwd4%N_MI)ORU4KfAJ7D2E05 zkJmV3y|C`?bC3Vpr$3J~`CejrgM=9m#V^+%UsSY1JgY7HwfUZ0mi80Yu{@UCUn1)% z9E1-T9BMXzTx^!NWlA@#D6sF0@4V2LHk{9b);o+Vh1i-42dBtuzj(FoxLW1v0v1f$ zLRs_l+U4>?q4K*EFHMz-S`7CD$5Xv(Ot{fy?1@i37Bi ztag2Gyr8soZ|V7D_lCa*?ccHhgF`3ALRo%Oyzr;?c=2Gh){>eE7UXDf%Ku$3kzhOb zzI>skn{GsXkvm*YHA{RCq_e=$SAi~DiA)5su*DpS?Mya8J zg&J9q1>nV`OS5JA0*_|-JU)D)V`1T*V-LvKYnRV?3YD+d`per$q=7zRWDk$8?NP@S@xa}2+hoq9HuH_M-m zuCS3PfDNeSe{iaDX@vU50Zl(v_@Or?@*eGhY!t)>Xmb^o!9h1HQ^j$xvYT^kr&8I* zS&Gra7Qt-rL2#{m_wl6E*Y2IqZ{9lh-ofu>2pc*({Z#BH-KDkte&P8SX^C-H#$DEg zve7lzm>dQ?{Rfud;=!|;jib!=57Upd`ORujlMiR32%L7{-(KOAC+o&T!*-k8oj9mR(3?lh>A{z^3K*LE#ft`+oQQAA`%XEYnx^03EWBGN)<b`uP zt)0lieej>^jL@||Unn2Fm*FRG&~Sqd=oLzb+`ZpOm9H)4Q>e9PWfza#WTO~1ie)4D zTWo0dnd;*}aUbg&^Fo-c>E)J@UuAYNe{KU2Ky${TLi>`XlMbiMl!Q3Tx~0Xj(H%B` zA@ImU#s24J)LMKrNu8ZJ_`M`Po{bXN;0S>vZvE3?Ix%g^dzId(P_g^-M7DM|)0u=F z?R~3!iD5Y!`7U}=jQ3DR5?eKyt(?Nvs%E6(3h01O>D4f58Q7*NU#;Xs9b{%m)Cu3J z(EKzuO#Sn))vI`3$;~m1P7Cg=O_Z^ldzYRG#SDM)rK|q zfxo~mFsVhEi~MiwnNd6Et=Z0$ZU1{BU?bBAU{FeE)sC0fx9@M3)tDu*Y%R@X>pWuX#!w!E-k9Jw zyt9Crd?Nu?R(JgJk9OaRJ*R*7wwLr6XS2CUjA>Zy1DzVdom&63HV28fU#xqV!-h6o zE*lEs##mNM-rk;yySq)BT=y%+KJ9(N=H{_gpR#p-(V)5v;Ltt0_T#zoZR=jInRfM4 zPveDrHY#8v6_A404%cV37uV0`e$~D#+Bu6+$kr)h>pWwt2NH|n+dM3-Y^2X|&BjL_ zAW0p%QM})JZn2+jQ{%G)-5FXh*r)`|i`)l*FCsuCZ@i>5=Alv1lLLP=Y)aYaB`)hS zHhxq0-xYqiH>Ff-DNvlVrD?pmR$Zw;?-l#l9Xh0rN=;bdk?o4y0;kB_-SHc;UbE2~ zU|l(E4%d>XSCJzKYu4fB#!Y=Zy)F1mqhF@)X=obi9xe6SW_ zz$kU*rkS$suOgB&`&QPlQ7x{S1)xD5<8J$dj!Zfbo#r@br{U32$42#R2+;T>;OC8U z!%yB&Uks*Q9_W#*+Ezft&Sy^P)OqkjIlDpi>$MLzv>Mou;P9}vg#6{Vk|dsE4F~jX z-(KF($cC~a#P}qm$?kD)D?ZnmExNZ(>e9qUAK2(2dyy=5#8q=0UH!v+!&?nXSNeAH zn_*LUBVzudzpC0&%?b-tS44dG>mwU|VnZMRBdRymy)m$1N%zyC`JcyHbyx9+_UDUcCI*pF?QGNmPLTKwOb~jha9N6necSeoraON4>C@zt z_q3PXjh$@N1p=ku)wSd2O18XQ6oq7-UU#!Mo3W>xje6LCxxRx8U>JPjf;IFowSuv$ z3wNKqWpc{IS68F?2V1+BtHmIs5CS=T2ZhMeiv%82EIjwihiYZkKHs|k9&7H+ z0ruXXY>i)R?r*m8AR8_N4uLA;jRU44!kb`F4n4fWa-a8slKBB!x0pGEuPJfoz?>O;al;Oy&jRrf z*?M}clrZzgS`QBLsfp)T3j5k=PoLT>6&(xM@ zH0I$0H?My!2;rbm4j?D+J}cgsx67?N^mS+J=Rc3_e~7MeP#8{2IIsh*8NmhYHBNKX z_fMfrGOl;YaolDY0ULmL6wG!T&#l?Duhdzx>NDG8Mt?L}E8yt0qn;aO&#R)SIxN_V$m{RK2m($&^Ml@R{=(n~!lZoM=SPp#4 z1RShyf9uo%?FBLf`sDI3;_#(g9L?LD!@rp9AtrY4c=zxw+LcM$yV@6Qe3vsG2gGn7 zQpR)OyJ-Ngz}w${4_-GvxO7(RP8pragqsN*jYN)I5=VW`O%AJqiOm>1{Jryc@Yl-& z8g&$7pH0ae%@oewU(DICx|3n(SYY$I)X5Ry%VejOZ%pN&G!B3zyzN2i3ZJHEnaNg6 zX`Q>3tC4?~gYJPqC{@6cxl8wHrPc53^guQr74)|5@1S8?fAqe8-bW7Tj$rCoeKI+I zpMxH7pfd@Ya(R!TalQ56k!|wi?<`Tu`OPDjmKP zw|b}Ak}M9&=0N`&FE#D_9`jsgg<<|OtIaZ@UNT)d9F)s}%JUQW#wf|e&0v6U{kpQp zs{Cq>R%9k@gsN5^2kxCfPq-m5ZoSt13R&LE0xRC*Z%<)OSW(21x8lgoU3TyaBI-n& zZp-JO0uDI95%{cfLrZV;w?|fPQ2J3xIda$IW|;h_fmAr0~$a+^;eV?62qd-MiZP7HH)_lJ*WXOy2z6|VkvX?$AHvTIc1}GkGq;L^syWbTssXwo z5W|&r7z26mz2~wF$1ru$^%Kv{?sV3I+2V#>50)p98iE-$R8)P`uh^EFf4AMU{*HqP z>&-}ilQHBN6K}hGd56tD)WAWFz!JP=Iie@~YBZo*NjRr8%aZi;S`!C-z!kHZ^WS&Q z{QJ_Pr9IA%yVjUbBCpt$a{9^JDIYoL69*}`a0plMTZTd)ZDQsP<_`7_T-Y$JE%V$_ zedpP}oVTBG#`7@4k_4N*HSPmmo_t$tIO7K%4IEnZf)*a z*~&p}9O&1!<31HGC4f&8@USeJOtQ?Z@VqX=1PlS%fTBlFD^r79Gn>jinj2Qcfn(%36~t<7iAYI;AFKVpR%RMivo-$NCVI$FTd@ zL}ZaoK?D_rKokiIC?YP1&$yt#oPHqI1x&^N`Stbdd;6Tz-RE?l?%RDH99vqQ>Y5hm zI&dxR&Ggy&?uC8#Kqe@`bfh|1sBS21*p4{Y&euCFXZm!b9~564(BUW)+=gYxL7juk z#Qtx6qG#a`?$63S;^Da@-h&!jDD1&^!!|?mOl$4*UZdc(6(Pqn=d=xYQp1aaad^|A z>-+2+ADl#ToqYV=jXy++7s~d|JhwU0hk}m^OODoz7b{;*|LSVn(uA4yrP6=tygmF@ z%5JJVPtm*VX@4)JHO9K=bNT5#UHHO$UuyVK@G|}3ouL~*;BYEu=gpY4Iw0ej4ePpl zZag1AjcpW^upH!D@afx^{`#cy{Yw)*nVnqq#yh7(my7u=bAI_x#EjK1CVsss{JF|N zYHX))6eftmjrVoSo!_@UbQ$mY@#^<)O-fjO!*aQK{LCA{bny9zA(gxTd@Id+eAS5p`)JPT~%DJ|EY5Q6LU9>8)sQ`nmaY^jYtaL3qg5}n1KUZ zH%uzuRkHY{*movB6DqpAvbHi}>IUCnhevAKG4erD6g8rOzW4>qF!^cpv!*w0*F-mZ z?k)cQRVxMWyb!w-ru_1}&&2_%j4K|$yZ_nOVyLl`!oUrFrr(UF^!Mf$ciIjWB`nUH zFgKPOaf}+X$>aAw+Lb!>o7XpUU#-;cy*%EVxU_ea9DVv&8EpGlHOD>oS9eikH-*g? zHg)`C>hy7+-3=*ucE+DAQzit?j;F?7;O2VuWHB>u$D9|8#4Tie_5JodwmbQ+aFjsH=IY>)^IGvsx_06ndCdCfh~E0(Xni#>bLy%#3|Gthhd zsmWKZ|HE4EMJ=8# zdiI(eM)^aR8{?incOide!QVdp_fDhlMAcsU{w@ql_V=!M`sGXsRr}srvAHi6cO2&y zq13?(FR!q0dT#4hx=n+iea6OhhBIK_G`CgDHn=T^4-s&^=$|Na)VqUm^9*NTC8t4} zN^If~SBg;(gbfrkRGU^W_h~2^esOgoD(6rcH}r1jYXOF@e`O*R$OwR}7C>Pl?}~P^3~z#x z0Qn%`K18&OcST>^hI{dTxkkPtZ&eaiyBewmYK2+~@xv!bH>uMb`3f-$d&%{3 zp)#OksM%`1TBUZ%HZ7UdkdvfWx6-{7Wibiu3fjl8fJfy_(!&@eZDcv_s0Dx&>uuzk zb`Ce|f#Pv43fuL5<)n%_;Fv6RZMndE~sZT#ot_fYlmxgmc zO2JAP4pWNdHYq^A&j$$iaj(|QB?mWuce#L)#_F%p+E>78mw{t+)Wgaa!ewmn(F*x+?PBWX5D|*{ zNGMW78Dp^>jvHV=&;V1(IAAuoDdDyrBHlPXTeoGy-(cOQ0mpAvn2OjLvr-8aF?2@< zMPwg~C;M;!;iC)|#n4o~0?P5AIWnqdsW{fNwJhcCC!;!+s1V^{2TQffP^(rB6^-QZ zXoG^?`+u4E-3CG+=Uqmx2U{@egOm`jPlP~27%aF0TljFn9r?l!t`Pzv;jwMa85qhK z3ZH5WUNSZ@+Ky4yNI3_MbojP080?p(G8V?P2O}%s)J?TYr{bdq^85HA)kkPh^8|0r zUn}4fw5LvJ*R>2>j9YLKDa8&cMo-equoVsqCev9cj*$V|`TN+S4-FI0Xb@&&gRzE1 zA2o@QF;w>~K)y~4)zChc13gpB5H$KAM#Up5H+CmH)E*Oy!;Da*ikbkiAM|Ux94a~p zY8hhC1_(V5EIS}2^oh~LPEZefdKe=IMiswtR2`IZu!Ee}98F^MGU9%6hzN@1BLVRo zxL(JwLPQaOFebw27%PpoLDrS*Qk^k;z0O4Vk5Ja3x}qFL3^e&o-~+!Gpi-6*sG$}o zDyW^I6{8N|@tCIPU`0ViX9KT^sXE#sb4bdOnqc4!he|<}76MmzvH*F(Bi<%JUAD?7 zePqwEx;(u3VycH96a;e#V&wxh4;__3iz!y6i1=#`sTLHjfNxMy6nia}NBuBUDJdjE z>f_jKQK;34cVuK^PoXO_8D`69KSMvzA}7kIhG9R4>KQ`YoR(3^STYVN?qE0sFK4?LbMm4YLq5!UaaPQ$}|H#Wq~dcgiqYZ&l!zH*be|CkbNJ!LJ8O77A%D zSVC5Y(7f5K{4E7d8GAG}4Fo13k{F8+HBiY_^9i!UFC4F@>K0Ip4vcb!$mcRVK~TQ( ztCcoQ>SMbug^bc^1=RxbCp33d$1yQcIgaa=r?!rf7N6+7pt=5m$X5zb3(;F`GY zYOorr-sGayU241wLaWk_Xw71+c2+zuwu+a;%iy9k@-4 z#22(K?TVIwuWELDQ@f+x(u%M@@gs+DC^?2}@lkvdH{ci&OX7%)B#`qslU&3(qzhle zCFC})B-^AwsfvV2R_Q27kdmZRq>0$2Ea?m>kXp!DazJV&71Bj=Ou9nqq+arq)FAbd zd*qDNB(+LDy06|PU6CyMUFp8mFGcCm`Yt^|&(tk)j&7C1<(={_dB1)@PnJvc0=Y~- zq?gFm`cb`9{!y=zoAgHctlqBwBwx^fmRsek`enUazpnS_4*jNnUj9YDrC*ir=??jZ zd{g$IKD1Z9FZatHN&xjy0;!)8Mg5g1Ww#Pb<7uXnL{n)xwbLw`L(whJ2(Wjs*#Sri zemGA9EAdf5f1W}i0AMVsdajBhRJ8xMn(B%*Ci947)WCDFF>=1xIk_jYJm6$!Xr(BF zVWEPu878VI7Z4`vd^Q>6vpmr5B8EN!vI;17q$uV&X*igjNscO39(dL=gwdxSYAn{l zDCUQc=x8#^8A+54mnN$pHIFwiQZRI!VF)f^i~5MMgB@FY;IEs6azIJ2QCC#Njc#Cb ztsbl&M!8nr8gQS5{272Sfq;Cd=tWQ{q@*?+4P$P~;0WEx#yD_1Z0sH90w#f#g0Uir zp>2O`D_X0dEMc_QITY>OfIxo6C@=6jD>w`FF#r|veS{Vd_VR<%(%`&0JtkAd zya?1}aLPp%NW&~^lTkFwg&`JJSS&A=2UjNi2FPcqK^&@KIaMk;0VpJC zb`fmwB+G+-Dg}X^erOSCR4}rgm^zQ;%Z(brLfI;<35STt$_Q4e zHLwW+Dgr((Bi_hwk)cOy@a%W@<#+exq5G1|w0RcV%K%Ijd9Z&I5pt=qk1oxli}uqc z`E-5(onA<%7t!gmqH2?L`osYWF+`VryA0mtCKOYngf1 diff --git a/front/src/components/DeliveryForm.jsx b/front/src/components/DeliveryForm.jsx index fccfc53..58d677a 100644 --- a/front/src/components/DeliveryForm.jsx +++ b/front/src/components/DeliveryForm.jsx @@ -1,16 +1,21 @@ -import { useState, useEffect } from 'react' +import { useState, useEffect } from 'react' const DeliveryForm = ({ delivery, onSubmit, onCancel }) => { const [formData, setFormData] = useState({ trackingNumber: '', destination: '', status: 'Принято', - customer: '' + customerName: '' }) - useEffect(() => { + useEffect(() => { if (delivery) { - setFormData(delivery) + setFormData({ + trackingNumber: delivery.trackingNumber || '', + destination: delivery.destination || '', + status: delivery.status || 'Принято', + customerName: delivery.customerName || '' + }) } }, [delivery]) @@ -27,7 +32,7 @@ const DeliveryForm = ({ delivery, onSubmit, onCancel }) => { trackingNumber: '', destination: '', status: 'Принято', - customer: '' + customerName: '' }) } } @@ -78,8 +83,8 @@ const DeliveryForm = ({ delivery, onSubmit, onCancel }) => { Клиент: diff --git a/front/src/components/DeliveryItem.jsx b/front/src/components/DeliveryItem.jsx index 831a960..3111086 100644 --- a/front/src/components/DeliveryItem.jsx +++ b/front/src/components/DeliveryItem.jsx @@ -5,13 +5,15 @@ const DeliveryItem = ({ delivery, onEdit, onDelete }) => {

    -

    Клиент: {delivery.customer}

    + {} +

    Клиент: {delivery.customerName || 'Не указан'}

    @@ -22,4 +24,4 @@ const DeliveryItem = ({ delivery, onEdit, onDelete }) => { ); }; -export default DeliveryItem; \ No newline at end of file +export default DeliveryItem; \ No newline at end of file diff --git a/front/src/components/DeliveryList.jsx b/front/src/components/DeliveryList.jsx index c94a8cf..75c9d77 100644 --- a/front/src/components/DeliveryList.jsx +++ b/front/src/components/DeliveryList.jsx @@ -21,6 +21,8 @@ const DeliveryList = () => { } }; + + if (loading) return
    Загрузка данных...
    ; if (error) return
    Ошибка: {error}
    ; @@ -52,6 +54,7 @@ const DeliveryList = () => { )}
    + ); }; diff --git a/front/src/components/OrderFilter.jsx b/front/src/components/OrderFilter.jsx index 9db4894..3e54da6 100644 --- a/front/src/components/OrderFilter.jsx +++ b/front/src/components/OrderFilter.jsx @@ -39,7 +39,7 @@ function OrderFilter({ onFilterChange }) {

    Фильтры и сортировка заказов

    - {/* Фильтр по статусу */} + {}
    - {/* Кнопка сброса */} + {}
    - {/* Показать активные фильтры */} + {} {(filters.status || filters.sortBy !== 'id') && (
    Активно: diff --git a/front/src/components/OrderList.jsx b/front/src/components/OrderList.jsx index d565cf4..1cd4ea0 100644 --- a/front/src/components/OrderList.jsx +++ b/front/src/components/OrderList.jsx @@ -21,23 +21,23 @@ function OrderList() { try { const [ordersRes, customersRes, deliveriesRes] = await Promise.all([ fetch('http://localhost:8080/api/orders'), - fetch('http://localhost:8080/api/customers'), + fetch('http://localhost:8080/api/customers'), fetch('http://localhost:8080/api/deliveries') ]); - + const ordersData = await ordersRes.json(); - const customersData = await customersRes.json(); + const customersData = await customersRes.json(); const deliveriesData = await deliveriesRes.json(); - + setOrders(ordersData); setFilteredOrders(ordersData); - setCustomers(customersData); + setCustomers(customersData); setDeliveries(deliveriesData); } catch (error) { console.error('Ошибка загрузки данных:', error); setOrders([]); setFilteredOrders([]); - setCustomers([]); + setCustomers([]); setDeliveries([]); } finally { setLoading(false); @@ -62,7 +62,7 @@ function OrderList() { const handleCreateOrder = async (orderData) => { try { - // Теперь отправляем OrderRq DTO с customerId и deliveryId + const orderRq = { customerId: orderData.customerId, deliveryId: orderData.deliveryId, @@ -154,7 +154,7 @@ function OrderList() { return (
    -

    📦 Управление заказами

    +

    Управление заказами

    diff --git a/front/src/hooks/useDeliveries.js b/front/src/hooks/useDeliveries.js index 401b9d7..0c9979a 100644 --- a/front/src/hooks/useDeliveries.js +++ b/front/src/hooks/useDeliveries.js @@ -26,11 +26,13 @@ export const useDeliveries = () => { const addDelivery = async (delivery) => { try { + console.log('Sending delivery data:', delivery); const response = await fetch(API_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(delivery) }); + console.log('Response status:', response.status); const newDelivery = await response.json(); setDeliveries(prev => [...prev, newDelivery]); return newDelivery; diff --git a/src/main/java/com/example/controller/CustomerController.java b/src/main/java/com/example/controller/CustomerController.java index 6f7da41..d8f7705 100644 --- a/src/main/java/com/example/controller/CustomerController.java +++ b/src/main/java/com/example/controller/CustomerController.java @@ -10,7 +10,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Optional; @CrossOrigin(origins = "http://localhost:5173") @RestController @@ -32,9 +31,9 @@ public class CustomerController { @GetMapping("/{id}") @Operation(summary = "Получить клиента по ID") - public ResponseEntity getOne(@PathVariable String id) { - Optional customer = customerService.findById(id); - return customer.map(ResponseEntity::ok) + public ResponseEntity getOne(@PathVariable Long id) { + return customerService.findById(id) + .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } @@ -46,16 +45,22 @@ public class CustomerController { @PutMapping("/{id}") @Operation(summary = "Обновить данные клиента") - public ResponseEntity update(@PathVariable String id, @Valid @RequestBody CustomerRq customerRq) { - Optional updated = customerService.update(id, customerRq); - return updated.map(ResponseEntity::ok) + public ResponseEntity update(@PathVariable Long id, @Valid @RequestBody CustomerRq customerRq) { + return customerService.update(id, customerRq) + .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } @DeleteMapping("/{id}") @Operation(summary = "Удалить клиента") - public ResponseEntity delete(@PathVariable String id) { + public ResponseEntity delete(@PathVariable Long id) { boolean deleted = customerService.delete(id); return deleted ? ResponseEntity.ok().build() : ResponseEntity.notFound().build(); } + + @GetMapping("/stats/orders") + @Operation(summary = "Получить статистику заказов по клиентам") + public List getCustomerOrderStats() { + return customerService.getCustomerOrderStats(); + } } \ No newline at end of file diff --git a/src/main/java/com/example/controller/DeliveryController.java b/src/main/java/com/example/controller/DeliveryController.java index 89cb37c..04aaa5c 100644 --- a/src/main/java/com/example/controller/DeliveryController.java +++ b/src/main/java/com/example/controller/DeliveryController.java @@ -32,7 +32,7 @@ public class DeliveryController { @GetMapping("/{id}") @Operation(summary = "Получить доставку по ID") - public ResponseEntity getOne(@PathVariable String id) { + public ResponseEntity getOne(@PathVariable Long id) { Optional delivery = deliveryService.findById(id); return delivery.map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); @@ -46,7 +46,7 @@ public class DeliveryController { @PutMapping("/{id}") @Operation(summary = "Обновить данные доставки") - public ResponseEntity update(@PathVariable String id, @Valid @RequestBody DeliveryRq deliveryRq) { + public ResponseEntity update(@PathVariable Long id, @Valid @RequestBody DeliveryRq deliveryRq) { Optional updated = deliveryService.update(id, deliveryRq); return updated.map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); @@ -54,8 +54,21 @@ public class DeliveryController { @DeleteMapping("/{id}") @Operation(summary = "Удалить доставку") - public ResponseEntity delete(@PathVariable String id) { + public ResponseEntity delete(@PathVariable Long id) { boolean deleted = deliveryService.delete(id); return deleted ? ResponseEntity.ok().build() : ResponseEntity.notFound().build(); } + + @GetMapping("/stats/status") + @Operation(summary = "Получить статистику доставок по статусам") + public List getDeliveryStatusStats() { + return deliveryService.getDeliveryStatusStats(); +} + + @GetMapping("/search/city/{city}") + @Operation(summary = "Найти доставки по городу") + public List getDeliveriesByCity(@PathVariable String city) { + + return deliveryService.findByCity(city); + } } \ No newline at end of file diff --git a/src/main/java/com/example/controller/OrderController.java b/src/main/java/com/example/controller/OrderController.java index 71b75d4..3774399 100644 --- a/src/main/java/com/example/controller/OrderController.java +++ b/src/main/java/com/example/controller/OrderController.java @@ -32,7 +32,7 @@ public class OrderController { @GetMapping("/{id}") @Operation(summary = "Получить заказ по ID") - public ResponseEntity getOne(@PathVariable String id) { + public ResponseEntity getOne(@PathVariable Long id) { Optional order = orderService.findById(id); return order.map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); @@ -40,7 +40,7 @@ public class OrderController { @GetMapping("/customer/{customerId}") @Operation(summary = "Получить заказы по ID клиента") - public List getByCustomer(@PathVariable String customerId) { + public List getByCustomer(@PathVariable Long customerId) { return orderService.findByCustomerId(customerId); } @@ -63,7 +63,7 @@ public class OrderController { @PutMapping("/{id}") @Operation(summary = "Обновить заказ") - public ResponseEntity update(@PathVariable String id, @Valid @RequestBody OrderRq orderRq) { + public ResponseEntity update(@PathVariable Long id, @Valid @RequestBody OrderRq orderRq) { try { Optional updated = orderService.update(id, orderRq); return updated.map(ResponseEntity::ok) @@ -75,8 +75,20 @@ public class OrderController { @DeleteMapping("/{id}") @Operation(summary = "Удалить заказ") - public ResponseEntity delete(@PathVariable String id) { + public ResponseEntity delete(@PathVariable Long id) { boolean deleted = orderService.delete(id); return deleted ? ResponseEntity.ok().build() : ResponseEntity.notFound().build(); } + + @GetMapping("/stats/monthly") + @Operation(summary = "Получить месячную статистику заказов") + public List getOrderMonthlyStats() { + return orderService.getOrderMonthlyStats(); +} + + @GetMapping("/stats/status") + @Operation(summary = "Получить статистику заказов по статусам") + public List getOrderStatusStats() { + return orderService.getOrderStatusStats(); +} } \ No newline at end of file diff --git a/src/main/java/com/example/dto/CustomerRq.java b/src/main/java/com/example/dto/CustomerRq.java index d6cc155..a60696e 100644 --- a/src/main/java/com/example/dto/CustomerRq.java +++ b/src/main/java/com/example/dto/CustomerRq.java @@ -14,7 +14,7 @@ public class CustomerRq { public CustomerRq() {} - public CustomerRq(String name, String email) { + public CustomerRq(String name, String email) { this.name = name; this.email = email; } diff --git a/src/main/java/com/example/dto/CustomerRs.java b/src/main/java/com/example/dto/CustomerRs.java index abd5211..ea80fe2 100644 --- a/src/main/java/com/example/dto/CustomerRs.java +++ b/src/main/java/com/example/dto/CustomerRs.java @@ -3,15 +3,15 @@ package com.example.dto; import java.time.LocalDateTime; public class CustomerRs { - private String id; + private Long id; private String name; private String email; private LocalDateTime createdAt; private LocalDateTime updatedAt; - public String getId() { return id; } - public void setId(String id) { this.id = id; } + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } diff --git a/src/main/java/com/example/dto/DeliveryRq.java b/src/main/java/com/example/dto/DeliveryRq.java index 93d5d53..1aecf92 100644 --- a/src/main/java/com/example/dto/DeliveryRq.java +++ b/src/main/java/com/example/dto/DeliveryRq.java @@ -12,8 +12,20 @@ public class DeliveryRq { @NotBlank(message = "Статус обязателен") private String status; - private String customer; + @NotBlank(message = "Имя клиента обязательно") + private String customerName; + + public DeliveryRq() {} + + public DeliveryRq(String trackingNumber, String destination, String status, String customerName) { + this.trackingNumber = trackingNumber; + this.destination = destination; + this.status = status; + this.customerName = customerName; + } + + public String getTrackingNumber() { return trackingNumber; } public void setTrackingNumber(String trackingNumber) { this.trackingNumber = trackingNumber; } @@ -23,15 +35,6 @@ public class DeliveryRq { public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } - public String getCustomer() { return customer; } - public void setCustomer(String customer) { this.customer = customer; } - - public DeliveryRq() {} - - public DeliveryRq(String trackingNumber, String destination, String status, String customer) { - this.trackingNumber = trackingNumber; - this.destination = destination; - this.status = status; - this.customer = customer; - } + public String getCustomerName() { return customerName; } + public void setCustomerName(String customerName) { this.customerName = customerName; } } \ No newline at end of file diff --git a/src/main/java/com/example/dto/DeliveryRs.java b/src/main/java/com/example/dto/DeliveryRs.java index 5081953..b4e055a 100644 --- a/src/main/java/com/example/dto/DeliveryRs.java +++ b/src/main/java/com/example/dto/DeliveryRs.java @@ -3,17 +3,17 @@ package com.example.dto; import java.time.LocalDateTime; public class DeliveryRs { - private String id; + private Long id; private String trackingNumber; private String destination; private String status; - private String customer; + private String customerName; private LocalDateTime createdAt; private LocalDateTime updatedAt; - public String getId() { return id; } - public void setId(String id) { this.id = id; } + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } public String getTrackingNumber() { return trackingNumber; } public void setTrackingNumber(String trackingNumber) { this.trackingNumber = trackingNumber; } @@ -24,8 +24,8 @@ public class DeliveryRs { public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } - public String getCustomer() { return customer; } - public void setCustomer(String customer) { this.customer = customer; } + public String getCustomerName() { return customerName; } + public void setCustomerName(String customerName) { this.customerName = customerName; } public LocalDateTime getCreatedAt() { return createdAt; } public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } diff --git a/src/main/java/com/example/dto/OrderRq.java b/src/main/java/com/example/dto/OrderRq.java index 1c046be..c00b0a4 100644 --- a/src/main/java/com/example/dto/OrderRq.java +++ b/src/main/java/com/example/dto/OrderRq.java @@ -1,32 +1,33 @@ package com.example.dto; -import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; public class OrderRq { - @NotBlank(message = "ID клиента обязателен") - private String customerId; + @NotNull(message = "ID клиента обязателен") + private Long customerId; - @NotBlank(message = "ID доставки обязателен") - private String deliveryId; + @NotNull(message = "ID доставки обязателен") + private Long deliveryId; - @NotBlank(message = "Статус обязателен") + @NotNull(message = "Статус обязателен") private String status; - public String getCustomerId() { return customerId; } - public void setCustomerId(String customerId) { this.customerId = customerId; } - public String getDeliveryId() { return deliveryId; } - public void setDeliveryId(String deliveryId) { this.deliveryId = deliveryId; } - - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } - public OrderRq() {} - public OrderRq(String customerId, String deliveryId, String status) { + public OrderRq(Long customerId, Long deliveryId, String status) { this.customerId = customerId; this.deliveryId = deliveryId; this.status = status; } + + + public Long getCustomerId() { return customerId; } + public void setCustomerId(Long customerId) { this.customerId = customerId; } + + public Long getDeliveryId() { return deliveryId; } + public void setDeliveryId(Long deliveryId) { this.deliveryId = deliveryId; } + + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } } \ No newline at end of file diff --git a/src/main/java/com/example/dto/OrderRs.java b/src/main/java/com/example/dto/OrderRs.java index 41149c2..08f4b47 100644 --- a/src/main/java/com/example/dto/OrderRs.java +++ b/src/main/java/com/example/dto/OrderRs.java @@ -3,7 +3,7 @@ package com.example.dto; import java.time.LocalDateTime; public class OrderRs { - private String id; + private Long id; private CustomerRs customer; private DeliveryRs delivery; private String status; @@ -11,8 +11,8 @@ public class OrderRs { private LocalDateTime updatedAt; - public String getId() { return id; } - public void setId(String id) { this.id = id; } + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } public CustomerRs getCustomer() { return customer; } public void setCustomer(CustomerRs customer) { this.customer = customer; } diff --git a/src/main/java/com/example/entity/BaseEntity.java b/src/main/java/com/example/entity/BaseEntity.java index 0c57fb4..5184a72 100644 --- a/src/main/java/com/example/entity/BaseEntity.java +++ b/src/main/java/com/example/entity/BaseEntity.java @@ -1,24 +1,40 @@ package com.example.entity; +import jakarta.persistence.*; + import java.time.LocalDateTime; +@MappedSuperclass public abstract class BaseEntity { - protected String id; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + protected Long id; + + @Column(name = "created_at", nullable = false, updatable = false) protected LocalDateTime createdAt; + + @Column(name = "updated_at", nullable = false) protected LocalDateTime updatedAt; - public BaseEntity() { - this.createdAt = LocalDateTime.now(); - this.updatedAt = LocalDateTime.now(); + @PrePersist + protected void onCreate() { + createdAt = LocalDateTime.now(); + updatedAt = LocalDateTime.now(); } - public String getId() { + @PreUpdate + protected void onUpdate() { + updatedAt = LocalDateTime.now(); + } + + + public Long getId() { return id; } - public void setId(String id) { + public void setId(Long id) { this.id = id; - this.updatedAt = LocalDateTime.now(); } public LocalDateTime getCreatedAt() { @@ -36,5 +52,4 @@ public abstract class BaseEntity { public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } - } \ No newline at end of file diff --git a/src/main/java/com/example/entity/Customer.java b/src/main/java/com/example/entity/Customer.java index 648e346..d79dfc3 100644 --- a/src/main/java/com/example/entity/Customer.java +++ b/src/main/java/com/example/entity/Customer.java @@ -1,13 +1,24 @@ package com.example.entity; +import jakarta.persistence.*; import java.util.ArrayList; import java.util.List; +@Entity +@Table(name = "customers") public class Customer extends BaseEntity { + + @Column(name = "name", nullable = false) private String name; + + @Column(name = "email", nullable = false, unique = true) private String email; + + + @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List orders = new ArrayList<>(); + public Customer() {} public Customer(String name, String email) { @@ -15,6 +26,7 @@ public class Customer extends BaseEntity { this.email = email; } + public String getName() { return name; } public void setName(String name) { this.name = name; } @@ -23,5 +35,15 @@ public class Customer extends BaseEntity { public List getOrders() { return orders; } public void setOrders(List orders) { this.orders = orders; } - public void addOrder(Order order) { this.orders.add(order); } + + + public void addOrder(Order order) { + orders.add(order); + order.setCustomer(this); + } + + public void removeOrder(Order order) { + orders.remove(order); + order.setCustomer(null); + } } \ No newline at end of file diff --git a/src/main/java/com/example/entity/Delivery.java b/src/main/java/com/example/entity/Delivery.java index 7ff23dc..d7cfd72 100644 --- a/src/main/java/com/example/entity/Delivery.java +++ b/src/main/java/com/example/entity/Delivery.java @@ -1,20 +1,40 @@ package com.example.entity; -public class Delivery extends BaseEntity { - private String trackingNumber; - private String destination; - private String status; - private String customer; +import jakarta.persistence.*; +import java.util.ArrayList; +import java.util.List; +@Entity +@Table(name = "deliveries") +public class Delivery extends BaseEntity { + + @Column(name = "tracking_number", nullable = false, unique = true) + private String trackingNumber; + + @Column(name = "destination", nullable = false) + private String destination; + + @Column(name = "status", nullable = false) + private String status; + + @Column(name = "customer_name") + private String customerName; + + + @OneToMany(mappedBy = "delivery", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private List orders = new ArrayList<>(); + + public Delivery() {} - public Delivery(String trackingNumber, String destination, String status, String customer) { + public Delivery(String trackingNumber, String destination, String status, String customerName) { this.trackingNumber = trackingNumber; this.destination = destination; this.status = status; - this.customer = customer; + this.customerName = customerName; } + public String getTrackingNumber() { return trackingNumber; } public void setTrackingNumber(String trackingNumber) { this.trackingNumber = trackingNumber; } @@ -24,6 +44,20 @@ public class Delivery extends BaseEntity { public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } - public String getCustomer() { return customer; } - public void setCustomer(String customer) { this.customer = customer; } + public String getCustomerName() { return customerName; } + public void setCustomerName(String customerName) { this.customerName = customerName; } + + public List getOrders() { return orders; } + public void setOrders(List orders) { this.orders = orders; } + + + public void addOrder(Order order) { + orders.add(order); + order.setDelivery(this); + } + + public void removeOrder(Order order) { + orders.remove(order); + order.setDelivery(null); + } } \ No newline at end of file diff --git a/src/main/java/com/example/entity/Order.java b/src/main/java/com/example/entity/Order.java index b221274..346b234 100644 --- a/src/main/java/com/example/entity/Order.java +++ b/src/main/java/com/example/entity/Order.java @@ -1,8 +1,22 @@ package com.example.entity; +import jakarta.persistence.*; + +@Entity +@Table(name = "orders") public class Order extends BaseEntity { - private Customer customer; - private Delivery delivery; + + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "customer_id", nullable = false) + private Customer customer; + + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "delivery_id", nullable = false) + private Delivery delivery; + + @Column(name = "status", nullable = false) private String status; @@ -14,12 +28,61 @@ public class Order extends BaseEntity { this.status = status; } - public Customer getCustomer() { return customer; } - public void setCustomer(Customer customer) { this.customer = customer; } - public Delivery getDelivery() { return delivery; } - public void setDelivery(Delivery delivery) { this.delivery = delivery; } + public Customer getCustomer() { + return customer; + } - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } + public void setCustomer(Customer customer) { + this.customer = customer; + + if (customer != null && !customer.getOrders().contains(this)) { + customer.getOrders().add(this); + } + } + + public Delivery getDelivery() { + return delivery; + } + + public void setDelivery(Delivery delivery) { + this.delivery = delivery; + + if (delivery != null && !delivery.getOrders().contains(this)) { + delivery.getOrders().add(this); + } + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + + @Override + public String toString() { + return "Order{" + + "id=" + getId() + + ", customer=" + (customer != null ? customer.getName() : "null") + + ", delivery=" + (delivery != null ? delivery.getTrackingNumber() : "null") + + ", status='" + status + '\'' + + ", createdAt=" + getCreatedAt() + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Order)) return false; + Order order = (Order) o; + return getId() != null && getId().equals(order.getId()); + } + + @Override + public int hashCode() { + return getClass().hashCode(); + } } \ No newline at end of file diff --git a/src/main/java/com/example/mapper/DeliveryMapper.java b/src/main/java/com/example/mapper/DeliveryMapper.java index 3454a1c..e1ccc23 100644 --- a/src/main/java/com/example/mapper/DeliveryMapper.java +++ b/src/main/java/com/example/mapper/DeliveryMapper.java @@ -13,7 +13,7 @@ public class DeliveryMapper { delivery.setTrackingNumber(deliveryRq.getTrackingNumber()); delivery.setDestination(deliveryRq.getDestination()); delivery.setStatus(deliveryRq.getStatus()); - delivery.setCustomer(deliveryRq.getCustomer()); + delivery.setCustomerName(deliveryRq.getCustomerName()); return delivery; } @@ -23,7 +23,7 @@ public class DeliveryMapper { deliveryRs.setTrackingNumber(delivery.getTrackingNumber()); deliveryRs.setDestination(delivery.getDestination()); deliveryRs.setStatus(delivery.getStatus()); - deliveryRs.setCustomer(delivery.getCustomer()); + deliveryRs.setCustomerName(delivery.getCustomerName()); deliveryRs.setCreatedAt(delivery.getCreatedAt()); deliveryRs.setUpdatedAt(delivery.getUpdatedAt()); return deliveryRs; diff --git a/src/main/java/com/example/mapper/OrderMapper.java b/src/main/java/com/example/mapper/OrderMapper.java index 4a2bbc4..5751ba1 100644 --- a/src/main/java/com/example/mapper/OrderMapper.java +++ b/src/main/java/com/example/mapper/OrderMapper.java @@ -3,6 +3,8 @@ package com.example.mapper; import com.example.entity.Order; import com.example.dto.OrderRq; import com.example.dto.OrderRs; +import com.example.dto.CustomerRs; +import com.example.dto.DeliveryRs; import org.springframework.stereotype.Component; @Component @@ -10,7 +12,6 @@ public class OrderMapper { public Order toEntity(OrderRq orderRq) { Order order = new Order(); - order.setStatus(orderRq.getStatus()); return order; } @@ -21,6 +22,30 @@ public class OrderMapper { orderRs.setStatus(order.getStatus()); orderRs.setCreatedAt(order.getCreatedAt()); orderRs.setUpdatedAt(order.getUpdatedAt()); + + + if (order.getCustomer() != null) { + CustomerRs customerRs = new CustomerRs(); + customerRs.setId(order.getCustomer().getId()); + customerRs.setName(order.getCustomer().getName()); + customerRs.setEmail(order.getCustomer().getEmail()); + customerRs.setCreatedAt(order.getCustomer().getCreatedAt()); + customerRs.setUpdatedAt(order.getCustomer().getUpdatedAt()); + orderRs.setCustomer(customerRs); + } + + if (order.getDelivery() != null) { + DeliveryRs deliveryRs = new DeliveryRs(); + deliveryRs.setId(order.getDelivery().getId()); + deliveryRs.setTrackingNumber(order.getDelivery().getTrackingNumber()); + deliveryRs.setDestination(order.getDelivery().getDestination()); + deliveryRs.setStatus(order.getDelivery().getStatus()); + deliveryRs.setCustomerName(order.getDelivery().getCustomerName()); + deliveryRs.setCreatedAt(order.getDelivery().getCreatedAt()); + deliveryRs.setUpdatedAt(order.getDelivery().getUpdatedAt()); + orderRs.setDelivery(deliveryRs); + } + return orderRs; } } \ No newline at end of file diff --git a/src/main/java/com/example/repository/CommonRepository.java b/src/main/java/com/example/repository/CommonRepository.java deleted file mode 100644 index cb059b9..0000000 --- a/src/main/java/com/example/repository/CommonRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.repository; - -import java.util.List; -import java.util.Optional; - -public interface CommonRepository { - List findAll(); - Optional findById(String id); - T save(T entity); - void deleteById(String id); - boolean existsById(String id); -} \ No newline at end of file diff --git a/src/main/java/com/example/repository/CustomerRepository.java b/src/main/java/com/example/repository/CustomerRepository.java index 88569d6..cd4ac3b 100644 --- a/src/main/java/com/example/repository/CustomerRepository.java +++ b/src/main/java/com/example/repository/CustomerRepository.java @@ -1,15 +1,34 @@ package com.example.repository; import com.example.entity.Customer; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; @Repository -public class CustomerRepository extends MapRepository { - public Optional findByEmail(String email) { - return storage.values().stream() - .filter(customer -> customer.getEmail().equals(email)) - .findFirst(); +public interface CustomerRepository extends JpaRepository { + + Optional findByEmail(String email); + + List findByNameContainingIgnoreCase(String name); + + + @Query("SELECT c.name as customerName, COUNT(o.id) as orderCount " + + "FROM Customer c LEFT JOIN c.orders o " + + "GROUP BY c.id, c.name " + + "ORDER BY orderCount DESC") + List findCustomerOrderStats(); + + interface CustomerOrderStats { + String getCustomerName(); + Long getOrderCount(); } + + + @Query("SELECT c FROM Customer c WHERE SIZE(c.orders) >= :minOrders") + List findCustomersWithMinOrders(@Param("minOrders") int minOrders); } \ No newline at end of file diff --git a/src/main/java/com/example/repository/DeliveryRepository.java b/src/main/java/com/example/repository/DeliveryRepository.java index 4c8727c..f480f81 100644 --- a/src/main/java/com/example/repository/DeliveryRepository.java +++ b/src/main/java/com/example/repository/DeliveryRepository.java @@ -1,15 +1,32 @@ package com.example.repository; import com.example.entity.Delivery; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; @Repository -public class DeliveryRepository extends MapRepository { - public Optional findByTrackingNumber(String trackingNumber) { - return storage.values().stream() - .filter(delivery -> delivery.getTrackingNumber().equals(trackingNumber)) - .findFirst(); +public interface DeliveryRepository extends JpaRepository { + + Optional findByTrackingNumber(String trackingNumber); + + List findByStatus(String status); + + + @Query("SELECT d.status as deliveryStatus, COUNT(d.id) as count " + + "FROM Delivery d GROUP BY d.status ORDER BY count DESC") + List findDeliveryStatusStats(); + + interface DeliveryStatusStats { + String getDeliveryStatus(); + Long getCount(); } + + + @Query("SELECT d FROM Delivery d WHERE d.destination LIKE %:city%") + List findDeliveriesByCity(@Param("city") String city); } \ No newline at end of file diff --git a/src/main/java/com/example/repository/MapRepository.java b/src/main/java/com/example/repository/MapRepository.java deleted file mode 100644 index e72b22d..0000000 --- a/src/main/java/com/example/repository/MapRepository.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.example.repository; - -import com.example.entity.BaseEntity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; - -public abstract class MapRepository implements CommonRepository { - protected final ConcurrentHashMap storage = new ConcurrentHashMap<>(); - protected final AtomicLong idCounter = new AtomicLong(1); - - @Override - public List findAll() { - return new ArrayList<>(storage.values()); - } - - @Override - public Optional findById(String id) { - return Optional.ofNullable(storage.get(id)); - } - - @Override - public T save(T entity) { - if (entity.getId() == null) { - - entity.setId(String.valueOf(idCounter.getAndIncrement())); - entity.setCreatedAt(java.time.LocalDateTime.now()); - } - - entity.setUpdatedAt(java.time.LocalDateTime.now()); - storage.put(entity.getId(), entity); - return entity; - } - - @Override - public void deleteById(String id) { - storage.remove(id); - } - - @Override - public boolean existsById(String id) { - return storage.containsKey(id); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/repository/OrderRepository.java b/src/main/java/com/example/repository/OrderRepository.java index 8d7be90..31e63b3 100644 --- a/src/main/java/com/example/repository/OrderRepository.java +++ b/src/main/java/com/example/repository/OrderRepository.java @@ -1,29 +1,49 @@ package com.example.repository; import com.example.entity.Order; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Optional; @Repository -public class OrderRepository extends MapRepository { +public interface OrderRepository extends JpaRepository { - public List findByCustomerId(String customerId) { - return storage.values().stream() - .filter(order -> order.getCustomer().getId().equals(customerId)) - .toList(); + List findByCustomerId(Long customerId); + + List findByDeliveryId(Long deliveryId); + + List findByStatus(String status); + + + @Query("SELECT MONTH(o.createdAt) as month, " + + "COUNT(o.id) as orderCount " + + "FROM Order o " + + "GROUP BY MONTH(o.createdAt) " + + "ORDER BY month") + List findOrderMonthlyStats(); + + interface OrderMonthlyStats { + Integer getMonth(); + Long getOrderCount(); } - public List findByDeliveryId(String deliveryId) { - return storage.values().stream() - .filter(order -> order.getDelivery().getId().equals(deliveryId)) - .toList(); + + @Query("SELECT o.status as status, " + + "COUNT(o.id) as total " + + "FROM Order o " + + "GROUP BY o.status") + List findOrderStatusStats(); + + interface OrderStatusStats { + String getStatus(); + Long getTotal(); } - public List findByStatus(String status) { - return storage.values().stream() - .filter(order -> order.getStatus().equals(status)) - .toList(); - } + + @Query("SELECT o FROM Order o WHERE o.customer.id = :customerId AND o.status = :status") + List findCustomerOrdersByStatus(@Param("customerId") Long customerId, + @Param("status") String status); } \ No newline at end of file diff --git a/src/main/java/com/example/service/CustomerService.java b/src/main/java/com/example/service/CustomerService.java index 7a57710..ded7e0e 100644 --- a/src/main/java/com/example/service/CustomerService.java +++ b/src/main/java/com/example/service/CustomerService.java @@ -1,16 +1,18 @@ package com.example.service; -import com.example.entity.Customer; import com.example.dto.CustomerRq; import com.example.dto.CustomerRs; +import com.example.entity.Customer; import com.example.mapper.CustomerMapper; import com.example.repository.CustomerRepository; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Service +@Transactional public class CustomerService { private final CustomerRepository customerRepository; @@ -19,40 +21,49 @@ public class CustomerService { public CustomerService(CustomerRepository customerRepository, CustomerMapper customerMapper) { this.customerRepository = customerRepository; this.customerMapper = customerMapper; - initializeTestData(); - } - - private void initializeTestData() { - if (customerRepository.findAll().isEmpty()) { - Customer customer1 = new Customer("Иванов Иван", "ivanov@example.com"); - Customer customer2 = new Customer("Петров Петр", "petrov@example.com"); - Customer customer3 = new Customer("Олег Андреевич", "oleg@example.com"); - customerRepository.save(customer1); - customerRepository.save(customer2); - customerRepository.save(customer3); - } } + @Transactional(readOnly = true) public List findAll() { return customerRepository.findAll().stream() .map(customerMapper::toResponse) .toList(); } - public Optional findById(String id) { + @Transactional(readOnly = true) + public Optional findById(Long id) { return customerRepository.findById(id) .map(customerMapper::toResponse); } + @Transactional(readOnly = true) + public Optional findByEmail(String email) { + return customerRepository.findByEmail(email); + } + + @Transactional(readOnly = true) + public List findByNameContaining(String name) { + return customerRepository.findByNameContainingIgnoreCase(name); + } + public CustomerRs create(CustomerRq customerRq) { + if (customerRepository.findByEmail(customerRq.getEmail()).isPresent()) { + throw new IllegalArgumentException("Customer with email " + customerRq.getEmail() + " already exists"); + } + Customer customer = customerMapper.toEntity(customerRq); Customer saved = customerRepository.save(customer); return customerMapper.toResponse(saved); } - public Optional update(String id, CustomerRq customerRq) { + public Optional update(Long id, CustomerRq customerRq) { return customerRepository.findById(id) .map(customer -> { + if (!customer.getEmail().equals(customerRq.getEmail()) && + customerRepository.findByEmail(customerRq.getEmail()).isPresent()) { + throw new IllegalArgumentException("Customer with email " + customerRq.getEmail() + " already exists"); + } + customer.setName(customerRq.getName()); customer.setEmail(customerRq.getEmail()); Customer updated = customerRepository.save(customer); @@ -60,11 +71,32 @@ public class CustomerService { }); } - public boolean delete(String id) { + public boolean delete(Long id) { if (customerRepository.existsById(id)) { customerRepository.deleteById(id); return true; } return false; } + + @Transactional(readOnly = true) + public List getCustomerOrderStats() { + List repoStats = customerRepository.findCustomerOrderStats(); + + return repoStats.stream() + .map(stat -> new CustomerOrderStats(stat.getCustomerName(), stat.getOrderCount())) + .toList(); + } + + public record CustomerOrderStats(String customerName, Long orderCount) {} + + @Transactional(readOnly = true) + public List getCustomersWithMinOrders(int minOrders) { + return customerRepository.findCustomersWithMinOrders(minOrders); + } + + @Transactional(readOnly = true) + public long countCustomers() { + return customerRepository.count(); + } } \ No newline at end of file diff --git a/src/main/java/com/example/service/DeliveryService.java b/src/main/java/com/example/service/DeliveryService.java index db8115d..88a5901 100644 --- a/src/main/java/com/example/service/DeliveryService.java +++ b/src/main/java/com/example/service/DeliveryService.java @@ -1,16 +1,18 @@ package com.example.service; -import com.example.entity.Delivery; import com.example.dto.DeliveryRq; import com.example.dto.DeliveryRs; +import com.example.entity.Delivery; import com.example.mapper.DeliveryMapper; import com.example.repository.DeliveryRepository; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Service +@Transactional public class DeliveryService { private final DeliveryRepository deliveryRepository; @@ -19,25 +21,17 @@ public class DeliveryService { public DeliveryService(DeliveryRepository deliveryRepository, DeliveryMapper deliveryMapper) { this.deliveryRepository = deliveryRepository; this.deliveryMapper = deliveryMapper; - initializeTestData(); - } - - private void initializeTestData() { - if (deliveryRepository.findAll().isEmpty()) { - Delivery delivery1 = new Delivery("IVN012021", "гоголя10", "Доставлено", "Парт петрович wwww"); - Delivery delivery2 = new Delivery("IVN123456", "Москва", "В пути", "1Иванов Иван"); - deliveryRepository.save(delivery1); - deliveryRepository.save(delivery2); - } } + @Transactional(readOnly = true) public List findAll() { return deliveryRepository.findAll().stream() .map(deliveryMapper::toResponse) .toList(); } - public Optional findById(String id) { + @Transactional(readOnly = true) + public Optional findById(Long id) { return deliveryRepository.findById(id) .map(deliveryMapper::toResponse); } @@ -48,23 +42,58 @@ public class DeliveryService { return deliveryMapper.toResponse(saved); } - public Optional update(String id, DeliveryRq deliveryRq) { + public Optional update(Long id, DeliveryRq deliveryRq) { return deliveryRepository.findById(id) .map(delivery -> { delivery.setTrackingNumber(deliveryRq.getTrackingNumber()); delivery.setDestination(deliveryRq.getDestination()); delivery.setStatus(deliveryRq.getStatus()); - delivery.setCustomer(deliveryRq.getCustomer()); + delivery.setCustomerName(deliveryRq.getCustomerName()); Delivery updated = deliveryRepository.save(delivery); return deliveryMapper.toResponse(updated); }); } - public boolean delete(String id) { + public boolean delete(Long id) { if (deliveryRepository.existsById(id)) { deliveryRepository.deleteById(id); return true; } return false; } + + @Transactional(readOnly = true) + public List getDeliveryStatusStats() { + List repoStats = deliveryRepository.findDeliveryStatusStats(); + + return repoStats.stream() + .map(stat -> new DeliveryStatusStats(stat.getDeliveryStatus(), stat.getCount())) + .toList(); + } + + public record DeliveryStatusStats(String deliveryStatus, Long count) {} + + @Transactional(readOnly = true) + public List findByCity(String city) { + return deliveryRepository.findDeliveriesByCity(city).stream() + .map(deliveryMapper::toResponse) + .toList(); + } + + @Transactional(readOnly = true) + public Optional findByTrackingNumber(String trackingNumber) { + return deliveryRepository.findByTrackingNumber(trackingNumber); + } + + @Transactional(readOnly = true) + public List findByStatus(String status) { + return deliveryRepository.findByStatus(status).stream() + .map(deliveryMapper::toResponse) + .toList(); + } + + @Transactional(readOnly = true) + public long countDeliveries() { + return deliveryRepository.count(); + } } \ No newline at end of file diff --git a/src/main/java/com/example/service/OrderService.java b/src/main/java/com/example/service/OrderService.java index 317b161..78061a7 100644 --- a/src/main/java/com/example/service/OrderService.java +++ b/src/main/java/com/example/service/OrderService.java @@ -1,20 +1,22 @@ package com.example.service; -import com.example.entity.Order; -import com.example.entity.Customer; -import com.example.entity.Delivery; import com.example.dto.OrderRq; import com.example.dto.OrderRs; +import com.example.entity.Customer; +import com.example.entity.Delivery; +import com.example.entity.Order; import com.example.mapper.OrderMapper; -import com.example.repository.OrderRepository; import com.example.repository.CustomerRepository; import com.example.repository.DeliveryRepository; +import com.example.repository.OrderRepository; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Service +@Transactional public class OrderService { private final OrderRepository orderRepository; @@ -30,40 +32,36 @@ public class OrderService { this.customerRepository = customerRepository; this.deliveryRepository = deliveryRepository; this.orderMapper = orderMapper; - initializeTestData(); - } - - private void initializeTestData() { - if (orderRepository.findAll().isEmpty()) { - List customers = customerRepository.findAll(); - List deliveries = deliveryRepository.findAll(); - - if (!customers.isEmpty() && !deliveries.isEmpty()) { - Order order1 = new Order(customers.get(0), deliveries.get(0), "Доставлено"); - Order order2 = new Order(customers.get(1), deliveries.get(1), "В пути"); - orderRepository.save(order1); - orderRepository.save(order2); - } - } } + @Transactional(readOnly = true) public List findAll() { return orderRepository.findAll().stream() .map(orderMapper::toResponse) .toList(); } - public Optional findById(String id) { + @Transactional(readOnly = true) + public Optional findById(Long id) { return orderRepository.findById(id) .map(orderMapper::toResponse); } - public List findByCustomerId(String customerId) { + @Transactional(readOnly = true) + public List findByCustomerId(Long customerId) { return orderRepository.findByCustomerId(customerId).stream() .map(orderMapper::toResponse) .toList(); } + @Transactional(readOnly = true) + public List findByDeliveryId(Long deliveryId) { + return orderRepository.findByDeliveryId(deliveryId).stream() + .map(orderMapper::toResponse) + .toList(); + } + + @Transactional(readOnly = true) public List findByStatus(String status) { return orderRepository.findByStatus(status).stream() .map(orderMapper::toResponse) @@ -71,26 +69,80 @@ public class OrderService { } public OrderRs create(OrderRq orderRq) { + Customer customer = customerRepository.findById(orderRq.getCustomerId()) + .orElseThrow(() -> new IllegalArgumentException("Customer not found with id: " + orderRq.getCustomerId())); + + Delivery delivery = deliveryRepository.findById(orderRq.getDeliveryId()) + .orElseThrow(() -> new IllegalArgumentException("Delivery not found with id: " + orderRq.getDeliveryId())); + Order order = orderMapper.toEntity(orderRq); + order.setCustomer(customer); + order.setDelivery(delivery); + Order saved = orderRepository.save(order); return orderMapper.toResponse(saved); } - public Optional update(String id, OrderRq orderRq) { + public Optional update(Long id, OrderRq orderRq) { return orderRepository.findById(id) .map(order -> { - Order updatedOrder = orderMapper.toEntity(orderRq); - updatedOrder.setId(id); - Order saved = orderRepository.save(updatedOrder); - return orderMapper.toResponse(saved); + Customer customer = customerRepository.findById(orderRq.getCustomerId()) + .orElseThrow(() -> new IllegalArgumentException("Customer not found with id: " + orderRq.getCustomerId())); + + Delivery delivery = deliveryRepository.findById(orderRq.getDeliveryId()) + .orElseThrow(() -> new IllegalArgumentException("Delivery not found with id: " + orderRq.getDeliveryId())); + + order.setCustomer(customer); + order.setDelivery(delivery); + order.setStatus(orderRq.getStatus()); + + Order updated = orderRepository.save(order); + return orderMapper.toResponse(updated); }); } - public boolean delete(String id) { + public boolean delete(Long id) { if (orderRepository.existsById(id)) { orderRepository.deleteById(id); return true; } return false; } + + @Transactional(readOnly = true) + public List getOrderMonthlyStats() { + List repoStats = orderRepository.findOrderMonthlyStats(); + + return repoStats.stream() + .map(stat -> new OrderMonthlyStats(stat.getMonth(), stat.getOrderCount())) + .toList(); + } + + public record OrderMonthlyStats(Integer month, Long orderCount) {} + + @Transactional(readOnly = true) + public List getOrderStatusStats() { + List repoStats = orderRepository.findOrderStatusStats(); + + return repoStats.stream() + .map(stat -> new OrderStatusStats(stat.getStatus(), stat.getTotal())) + .toList(); + } + + public record OrderStatusStats(String status, Long total) {} + + @Transactional(readOnly = true) + public List getCustomerOrdersByStatus(Long customerId, String status) { + return orderRepository.findCustomerOrdersByStatus(customerId, status); + } + + @Transactional(readOnly = true) + public long countOrders() { + return orderRepository.count(); + } + + @Transactional(readOnly = true) + public long countOrdersByStatus(String status) { + return orderRepository.findByStatus(status).size(); + } } \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 2109a44..7c5c9e9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,22 @@ -spring.application.name=demo +# H2 Database Configuration +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password= + +# JPA Configuration +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.jpa.hibernate.ddl-auto=create-drop +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true + +# H2 Console (для просмотра базы в браузере) +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console + +# Включить инициализацию данных +spring.sql.init.mode=always +spring.jpa.defer-datasource-initialization=true + +# Server Configuration +server.port=8080 \ No newline at end of file diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql new file mode 100644 index 0000000..01839c6 --- /dev/null +++ b/src/main/resources/data.sql @@ -0,0 +1,14 @@ +-- Тестовые клиенты +INSERT INTO customers (id, name, email, created_at, updated_at) +VALUES +(1, 'Иван Иванов', 'ivan@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(2, 'Петр Петров', 'petr@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(3, 'Мария Сидорова', 'maria@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(4, 'Алексей Козлов', 'alex@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(5, 'Ольга Новикова', 'olga@mail.ru', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); + +-- Тестовые доставки (опционально) +INSERT INTO deliveries (id, tracking_number, destination, status, customer_name, created_at, updated_at) +VALUES +(1, 'IVN777777', 'гоголя 34', 'В пути', 'Иван Иванов', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP), +(2, 'IVN012021', 'Москва', 'Принято', 'Петр Петров', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); \ No newline at end of file diff --git a/src/test/java/com/example/service/CustomerServiceIntegrationTest.java b/src/test/java/com/example/service/CustomerServiceIntegrationTest.java deleted file mode 100644 index bdbc20f..0000000 --- a/src/test/java/com/example/service/CustomerServiceIntegrationTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.example.service; - -import com.example.dto.CustomerRq; -import com.example.dto.CustomerRs; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - -@SpringBootTest -class CustomerServiceIntegrationTest { - - @Autowired - private CustomerService customerService; - - @Test - void getTest_WhenCustomerNotExists_ShouldThrowException() { - - assertThrows(RuntimeException.class, () -> - customerService.findById("non-existent-id").orElseThrow(() -> new RuntimeException("Not found"))); - } - - @Test - void createTest() { - - int initialCount = customerService.findAll().size(); - - - CustomerRq customerRq1 = new CustomerRq(); - customerRq1.setName("ПИбд-31"); - customerRq1.setEmail("pi31@example.com"); - CustomerRs customer1 = customerService.create(customerRq1); - - CustomerRq customerRq2 = new CustomerRq(); - customerRq2.setName("ПИбд-32"); - customerRq2.setEmail("pi32@example.com"); - CustomerRs customer2 = customerService.create(customerRq2); - - CustomerRq customerRq3 = new CustomerRq(); - customerRq3.setName("ПИбд-33"); - customerRq3.setEmail("pi33@example.com"); - CustomerRs customer3 = customerService.create(customerRq3); - - - assertEquals(initialCount + 3, customerService.findAll().size()); - - - CustomerRs foundCustomer = customerService.findById(customer3.getId()) - .orElseThrow(() -> new RuntimeException("Customer not found")); - assertEquals(customer3.getId(), foundCustomer.getId()); - assertEquals(customer3.getName(), foundCustomer.getName()); - } - - @Test - void updateTest() { - - List customers = customerService.findAll(); - if (customers.isEmpty()) { - - CustomerRq newCustomer = new CustomerRq(); - newCustomer.setName("Тестовый клиент"); - newCustomer.setEmail("test@example.com"); - customerService.create(newCustomer); - customers = customerService.findAll(); - } - - CustomerRs existingCustomer = customers.get(0); - String customerId = existingCustomer.getId(); - - final String newName = "ОБНОВЛЕННОЕ ИМЯ"; - final String newEmail = "updated@example.com"; - - - CustomerRq updateRequest = new CustomerRq(); - updateRequest.setName(newName); - updateRequest.setEmail(newEmail); - - CustomerRs updatedCustomer = customerService.update(customerId, updateRequest) - .orElseThrow(() -> new RuntimeException("Customer not found")); - - - assertEquals(customers.size(), customerService.findAll().size()); - - - assertEquals(newName, updatedCustomer.getName()); - assertEquals(newEmail, updatedCustomer.getEmail()); - assertNotEquals(existingCustomer.getName(), updatedCustomer.getName()); - - - CustomerRs customerFromDb = customerService.findById(customerId) - .orElseThrow(() -> new RuntimeException("Customer not found")); - assertEquals(updatedCustomer.getId(), customerFromDb.getId()); - assertEquals(updatedCustomer.getName(), customerFromDb.getName()); - } - - @Test - void deleteTest() { - - CustomerRq newCustomer = new CustomerRq(); - newCustomer.setName("Клиент для удаления"); - newCustomer.setEmail("delete@example.com"); - CustomerRs customerToDelete = customerService.create(newCustomer); - - - int countBefore = customerService.findAll().size(); - - - customerService.delete(customerToDelete.getId()); - - - assertEquals(countBefore - 1, customerService.findAll().size()); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/service/CustomerServiceTest.java b/src/test/java/com/example/service/CustomerServiceTest.java new file mode 100644 index 0000000..f1ccf9c --- /dev/null +++ b/src/test/java/com/example/service/CustomerServiceTest.java @@ -0,0 +1,71 @@ +package com.example.service; + +import com.example.dto.CustomerRq; +import com.example.dto.CustomerRs; +import com.example.entity.Customer; +import com.example.mapper.CustomerMapper; +import com.example.repository.CustomerRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +class CustomerServiceTest { + + @Mock + private CustomerRepository customerRepository; + + @Mock + private CustomerMapper customerMapper; + + @InjectMocks + private CustomerService customerService; + + @Test + void findById_WhenCustomerExists_ShouldReturnCustomer() { + + Long customerId = 1L; + Customer customer = new Customer("Test", "test@mail.ru"); + CustomerRs customerRs = new CustomerRs(); + customerRs.setId(customerId); + + when(customerRepository.findById(customerId)).thenReturn(Optional.of(customer)); + when(customerMapper.toResponse(customer)).thenReturn(customerRs); + + + Optional result = customerService.findById(customerId); + + + assertTrue(result.isPresent()); + assertEquals(customerId, result.get().getId()); + } + + @Test + void create_WhenValidData_ShouldCreateCustomer() { + + CustomerRq request = new CustomerRq("John", "john@mail.ru"); + Customer customer = new Customer("John", "john@mail.ru"); + Customer savedCustomer = new Customer("John", "john@mail.ru"); + CustomerRs response = new CustomerRs(); + + when(customerRepository.findByEmail("john@mail.ru")).thenReturn(Optional.empty()); + when(customerMapper.toEntity(request)).thenReturn(customer); + when(customerRepository.save(customer)).thenReturn(savedCustomer); + when(customerMapper.toResponse(savedCustomer)).thenReturn(response); + + + CustomerRs result = customerService.create(request); + + + assertNotNull(result); + verify(customerRepository).save(customer); + } +} \ No newline at end of file diff --git a/src/test/java/com/example/service/DeliveryServiceIntegrationTest.java b/src/test/java/com/example/service/DeliveryServiceIntegrationTest.java deleted file mode 100644 index 96e86f2..0000000 --- a/src/test/java/com/example/service/DeliveryServiceIntegrationTest.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.example.service; - -import com.example.dto.DeliveryRq; -import com.example.dto.DeliveryRs; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - -@SpringBootTest -class DeliveryServiceIntegrationTest { - - @Autowired - private DeliveryService deliveryService; - - @Test - void getTest_WhenDeliveryNotExists_ShouldThrowException() { - - assertThrows(RuntimeException.class, () -> - deliveryService.findById("non-existent-id").orElseThrow(() -> new RuntimeException("Not found"))); - } - - @Test - void createTest() { - - int initialCount = deliveryService.findAll().size(); - - - DeliveryRq deliveryRq1 = new DeliveryRq(); - deliveryRq1.setTrackingNumber("TRACK001"); - deliveryRq1.setDestination("Москва"); - deliveryRq1.setStatus("В пути"); - deliveryRq1.setCustomer("Иван Иванов"); - DeliveryRs delivery1 = deliveryService.create(deliveryRq1); - - DeliveryRq deliveryRq2 = new DeliveryRq(); - deliveryRq2.setTrackingNumber("TRACK002"); - deliveryRq2.setDestination("Санкт-Петербург"); - deliveryRq2.setStatus("Доставлено"); - deliveryRq2.setCustomer("Петр Петров"); - DeliveryRs delivery2 = deliveryService.create(deliveryRq2); - - DeliveryRq deliveryRq3 = new DeliveryRq(); - deliveryRq3.setTrackingNumber("TRACK003"); - deliveryRq3.setDestination("Казань"); - deliveryRq3.setStatus("Обработка"); - deliveryRq3.setCustomer("Сергей Сергеев"); - DeliveryRs delivery3 = deliveryService.create(deliveryRq3); - - - assertEquals(initialCount + 3, deliveryService.findAll().size()); - - - DeliveryRs foundDelivery = deliveryService.findById(delivery3.getId()) - .orElseThrow(() -> new RuntimeException("Delivery not found")); - assertEquals(delivery3.getId(), foundDelivery.getId()); - assertEquals(delivery3.getTrackingNumber(), foundDelivery.getTrackingNumber()); - } - - @Test - void updateTest() { - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("OLD123"); - deliveryRq.setDestination("Старый адрес"); - deliveryRq.setStatus("Создана"); - deliveryRq.setCustomer("Тестовый клиент"); - DeliveryRs delivery = deliveryService.create(deliveryRq); - - - int countBefore = deliveryService.findAll().size(); - - final String newTrackingNumber = "NEW123"; - final String newDestination = "Новый адрес"; - final String newStatus = "В пути"; - - - DeliveryRq updateRequest = new DeliveryRq(); - updateRequest.setTrackingNumber(newTrackingNumber); - updateRequest.setDestination(newDestination); - updateRequest.setStatus(newStatus); - updateRequest.setCustomer("Обновленный клиент"); - - DeliveryRs updatedDelivery = deliveryService.update(delivery.getId(), updateRequest) - .orElseThrow(() -> new RuntimeException("Delivery not found")); - - - assertEquals(countBefore, deliveryService.findAll().size()); - - - assertEquals(newTrackingNumber, updatedDelivery.getTrackingNumber()); - assertEquals(newDestination, updatedDelivery.getDestination()); - assertEquals(newStatus, updatedDelivery.getStatus()); - assertNotEquals(delivery.getTrackingNumber(), updatedDelivery.getTrackingNumber()); - - - DeliveryRs deliveryFromDb = deliveryService.findById(delivery.getId()) - .orElseThrow(() -> new RuntimeException("Delivery not found")); - assertEquals(updatedDelivery.getId(), deliveryFromDb.getId()); - assertEquals(updatedDelivery.getTrackingNumber(), deliveryFromDb.getTrackingNumber()); - } - - @Test - void deleteTest() { - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("DELETE123"); - deliveryRq.setDestination("Адрес для удаления"); - deliveryRq.setStatus("Создана"); - deliveryRq.setCustomer("Клиент для удаления"); - DeliveryRs deliveryToDelete = deliveryService.create(deliveryRq); - - - int countBefore = deliveryService.findAll().size(); - - - deliveryService.delete(deliveryToDelete.getId()); - - - assertEquals(countBefore - 1, deliveryService.findAll().size()); - } - - @Test - void findByTrackingNumberTest() { - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("UNIQUE123"); - deliveryRq.setDestination("Уникальный адрес"); - deliveryRq.setStatus("В пути"); - deliveryRq.setCustomer("Уникальный клиент"); - DeliveryRs created = deliveryService.create(deliveryRq); - - - DeliveryRs found = deliveryService.findById(created.getId()) - .orElseThrow(() -> new RuntimeException("Delivery not found")); - - assertEquals("UNIQUE123", found.getTrackingNumber()); - assertEquals("Уникальный адрес", found.getDestination()); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/service/DeliveryServiceTest.java b/src/test/java/com/example/service/DeliveryServiceTest.java new file mode 100644 index 0000000..7b0a496 --- /dev/null +++ b/src/test/java/com/example/service/DeliveryServiceTest.java @@ -0,0 +1,141 @@ +package com.example.service; + +import com.example.dto.DeliveryRq; +import com.example.dto.DeliveryRs; +import com.example.entity.Delivery; +import com.example.mapper.DeliveryMapper; +import com.example.repository.DeliveryRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +class DeliveryServiceTest { + + @Mock + private DeliveryRepository deliveryRepository; + + @Mock + private DeliveryMapper deliveryMapper; + + @InjectMocks + private DeliveryService deliveryService; + + @Test + void findAll_ShouldReturnAllDeliveries() { + + Delivery delivery1 = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Delivery delivery2 = new Delivery("TRACK002", "СПб", "Доставлено", "Петр Петров"); + DeliveryRs deliveryRs1 = new DeliveryRs(); + DeliveryRs deliveryRs2 = new DeliveryRs(); + + when(deliveryRepository.findAll()).thenReturn(List.of(delivery1, delivery2)); + when(deliveryMapper.toResponse(delivery1)).thenReturn(deliveryRs1); + when(deliveryMapper.toResponse(delivery2)).thenReturn(deliveryRs2); + + + List result = deliveryService.findAll(); + + + assertEquals(2, result.size()); + verify(deliveryRepository).findAll(); + } + + @Test + void findById_WhenDeliveryExists_ShouldReturnDelivery() { + + Long deliveryId = 1L; + Delivery delivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + DeliveryRs deliveryRs = new DeliveryRs(); + + when(deliveryRepository.findById(deliveryId)).thenReturn(Optional.of(delivery)); + when(deliveryMapper.toResponse(delivery)).thenReturn(deliveryRs); + + + Optional result = deliveryService.findById(deliveryId); + + + assertTrue(result.isPresent()); + verify(deliveryRepository).findById(deliveryId); + } + + @Test + void create_WhenValidData_ShouldCreateDelivery() { + + DeliveryRq request = new DeliveryRq("TRACK001", "Москва", "В пути", "Иван Иванов"); + Delivery delivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Delivery savedDelivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + DeliveryRs response = new DeliveryRs(); + + when(deliveryMapper.toEntity(request)).thenReturn(delivery); + when(deliveryRepository.save(delivery)).thenReturn(savedDelivery); + when(deliveryMapper.toResponse(savedDelivery)).thenReturn(response); + + + DeliveryRs result = deliveryService.create(request); + + + assertNotNull(result); + verify(deliveryRepository).save(delivery); + } + + @Test + void update_WhenDeliveryExists_ShouldUpdateDelivery() { + + Long deliveryId = 1L; + DeliveryRq request = new DeliveryRq("TRACK002", "СПб", "Доставлено", "Петр Петров"); + Delivery existingDelivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Delivery updatedDelivery = new Delivery("TRACK002", "СПб", "Доставлено", "Петр Петров"); + DeliveryRs response = new DeliveryRs(); + + when(deliveryRepository.findById(deliveryId)).thenReturn(Optional.of(existingDelivery)); + when(deliveryRepository.save(existingDelivery)).thenReturn(updatedDelivery); + when(deliveryMapper.toResponse(updatedDelivery)).thenReturn(response); + + + Optional result = deliveryService.update(deliveryId, request); + + + assertTrue(result.isPresent()); + assertEquals("TRACK002", existingDelivery.getTrackingNumber()); + assertEquals("СПб", existingDelivery.getDestination()); + verify(deliveryRepository).save(existingDelivery); + } + + @Test + void delete_WhenDeliveryExists_ShouldDeleteDelivery() { + + Long deliveryId = 1L; + when(deliveryRepository.existsById(deliveryId)).thenReturn(true); + + + boolean result = deliveryService.delete(deliveryId); + + + assertTrue(result); + verify(deliveryRepository).deleteById(deliveryId); + } + + @Test + void delete_WhenDeliveryNotExists_ShouldReturnFalse() { + + Long deliveryId = 999L; + when(deliveryRepository.existsById(deliveryId)).thenReturn(false); + + + boolean result = deliveryService.delete(deliveryId); + + + assertFalse(result); + verify(deliveryRepository, never()).deleteById(deliveryId); + } +} \ No newline at end of file diff --git a/src/test/java/com/example/service/OrderServiceIntegrationTest.java b/src/test/java/com/example/service/OrderServiceIntegrationTest.java deleted file mode 100644 index ea92efc..0000000 --- a/src/test/java/com/example/service/OrderServiceIntegrationTest.java +++ /dev/null @@ -1,226 +0,0 @@ -package com.example.service; - -import com.example.dto.OrderRq; -import com.example.dto.OrderRs; -import com.example.dto.CustomerRq; -import com.example.dto.DeliveryRq; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; - -@SpringBootTest -class OrderServiceIntegrationTest { - - @Autowired - private OrderService orderService; - - @Autowired - private CustomerService customerService; - - @Autowired - private DeliveryService deliveryService; - - @Test - void getTest_WhenOrderNotExists_ShouldThrowException() { - - assertThrows(RuntimeException.class, () -> - orderService.findById("non-existent-id").orElseThrow(() -> new RuntimeException("Not found"))); - } - - @Test - void createTest() { - - CustomerRq customerRq = new CustomerRq(); - customerRq.setName("Тестовый Клиент для Заказа"); - customerRq.setEmail("order@example.com"); - String customerId = customerService.create(customerRq).getId(); - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("ORDER_TRACK"); - deliveryRq.setDestination("Адрес для заказа"); - deliveryRq.setStatus("Готов к отправке"); - deliveryRq.setCustomer("Тестовый клиент"); - String deliveryId = deliveryService.create(deliveryRq).getId(); - - - int initialCount = orderService.findAll().size(); - - - OrderRq orderRq1 = new OrderRq(); - orderRq1.setCustomerId(customerId); - orderRq1.setDeliveryId(deliveryId); - orderRq1.setStatus("В пути"); - OrderRs order1 = orderService.create(orderRq1); - - OrderRq orderRq2 = new OrderRq(); - orderRq2.setCustomerId(customerId); - orderRq2.setDeliveryId(deliveryId); - orderRq2.setStatus("Обработка"); - OrderRs order2 = orderService.create(orderRq2); - - OrderRq orderRq3 = new OrderRq(); - orderRq3.setCustomerId(customerId); - orderRq3.setDeliveryId(deliveryId); - orderRq3.setStatus("Доставлено"); - OrderRs order3 = orderService.create(orderRq3); - - - assertEquals(initialCount + 3, orderService.findAll().size()); - - - OrderRs foundOrder = orderService.findById(order3.getId()) - .orElseThrow(() -> new RuntimeException("Order not found")); - assertEquals(order3.getId(), foundOrder.getId()); - assertEquals(order3.getStatus(), foundOrder.getStatus()); - - - assertNotNull(foundOrder.getCustomer()); - assertNotNull(foundOrder.getDelivery()); - assertEquals(customerId, foundOrder.getCustomer().getId()); - assertEquals(deliveryId, foundOrder.getDelivery().getId()); - } - - @Test - void updateTest() { - - CustomerRq customerRq = new CustomerRq(); - customerRq.setName("Клиент для обновления"); - customerRq.setEmail("update@example.com"); - String customerId = customerService.create(customerRq).getId(); - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("UPDATE_TRACK"); - deliveryRq.setDestination("Адрес для обновления"); - deliveryRq.setStatus("Готов"); - deliveryRq.setCustomer("Клиент"); - String deliveryId = deliveryService.create(deliveryRq).getId(); - - - OrderRq orderRq = new OrderRq(); - orderRq.setCustomerId(customerId); - orderRq.setDeliveryId(deliveryId); - orderRq.setStatus("В пути"); - OrderRs order = orderService.create(orderRq); - - - int countBefore = orderService.findAll().size(); - - final String newStatus = "Доставлено"; - - - OrderRq updateRequest = new OrderRq(); - updateRequest.setCustomerId(customerId); - updateRequest.setDeliveryId(deliveryId); - updateRequest.setStatus(newStatus); - - OrderRs updatedOrder = orderService.update(order.getId(), updateRequest) - .orElseThrow(() -> new RuntimeException("Order not found")); - - - assertEquals(countBefore, orderService.findAll().size()); - - - assertEquals(newStatus, updatedOrder.getStatus()); - assertNotEquals(order.getStatus(), updatedOrder.getStatus()); - - - OrderRs orderFromDb = orderService.findById(order.getId()) - .orElseThrow(() -> new RuntimeException("Order not found")); - assertEquals(updatedOrder.getId(), orderFromDb.getId()); - assertEquals(updatedOrder.getStatus(), orderFromDb.getStatus()); - } - - @Test - void deleteTest() { - - CustomerRq customerRq = new CustomerRq(); - customerRq.setName("Клиент для удаления"); - customerRq.setEmail("delete@example.com"); - String customerId = customerService.create(customerRq).getId(); - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("DELETE_TRACK"); - deliveryRq.setDestination("Адрес для удаления"); - deliveryRq.setStatus("Готов"); - deliveryRq.setCustomer("Клиент"); - String deliveryId = deliveryService.create(deliveryRq).getId(); - - - OrderRq orderRq = new OrderRq(); - orderRq.setCustomerId(customerId); - orderRq.setDeliveryId(deliveryId); - orderRq.setStatus("В пути"); - OrderRs orderToDelete = orderService.create(orderRq); - - - int countBefore = orderService.findAll().size(); - - - orderService.delete(orderToDelete.getId()); - - - assertEquals(countBefore - 1, orderService.findAll().size()); - } - - @Test - void findByCustomerIdTest() { - - CustomerRq customerRq = new CustomerRq(); - customerRq.setName("Клиент для поиска"); - customerRq.setEmail("search@example.com"); - String customerId = customerService.create(customerRq).getId(); - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("SEARCH_TRACK"); - deliveryRq.setDestination("Адрес для поиска"); - deliveryRq.setStatus("Готов"); - deliveryRq.setCustomer("Клиент"); - String deliveryId = deliveryService.create(deliveryRq).getId(); - - - OrderRq orderRq = new OrderRq(); - orderRq.setCustomerId(customerId); - orderRq.setDeliveryId(deliveryId); - orderRq.setStatus("В пути"); - orderService.create(orderRq); - - - List customerOrders = orderService.findByCustomerId(customerId); - - assertFalse(customerOrders.isEmpty()); - assertEquals(customerId, customerOrders.get(0).getCustomer().getId()); - } - - @Test - void findByStatusTest() { - - CustomerRq customerRq = new CustomerRq(); - customerRq.setName("Клиент для статуса"); - customerRq.setEmail("status@example.com"); - String customerId = customerService.create(customerRq).getId(); - - DeliveryRq deliveryRq = new DeliveryRq(); - deliveryRq.setTrackingNumber("STATUS_TRACK"); - deliveryRq.setDestination("Адрес для статуса"); - deliveryRq.setStatus("Готов"); - deliveryRq.setCustomer("Клиент"); - String deliveryId = deliveryService.create(deliveryRq).getId(); - - - OrderRq orderRq = new OrderRq(); - orderRq.setCustomerId(customerId); - orderRq.setDeliveryId(deliveryId); - orderRq.setStatus("Обработка"); - orderService.create(orderRq); - - - List processingOrders = orderService.findByStatus("Обработка"); - - assertFalse(processingOrders.isEmpty()); - assertEquals("Обработка", processingOrders.get(0).getStatus()); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/service/OrderServiceTest.java b/src/test/java/com/example/service/OrderServiceTest.java new file mode 100644 index 0000000..5eae082 --- /dev/null +++ b/src/test/java/com/example/service/OrderServiceTest.java @@ -0,0 +1,185 @@ +package com.example.service; + +import com.example.dto.OrderRq; +import com.example.dto.OrderRs; +import com.example.entity.Customer; +import com.example.entity.Delivery; +import com.example.entity.Order; +import com.example.mapper.OrderMapper; +import com.example.repository.CustomerRepository; +import com.example.repository.DeliveryRepository; +import com.example.repository.OrderRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +class OrderServiceTest { + + @Mock + private OrderRepository orderRepository; + + @Mock + private CustomerRepository customerRepository; + + @Mock + private DeliveryRepository deliveryRepository; + + @Mock + private OrderMapper orderMapper; + + @InjectMocks + private OrderService orderService; + + @Test + void findAll_ShouldReturnAllOrders() { + + Customer customer = new Customer("Иван", "ivan@mail.ru"); + Delivery delivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Order order1 = new Order(customer, delivery, "В пути"); + Order order2 = new Order(customer, delivery, "Доставлено"); + OrderRs orderRs1 = new OrderRs(); + OrderRs orderRs2 = new OrderRs(); + + when(orderRepository.findAll()).thenReturn(List.of(order1, order2)); + when(orderMapper.toResponse(order1)).thenReturn(orderRs1); + when(orderMapper.toResponse(order2)).thenReturn(orderRs2); + + + List result = orderService.findAll(); + + + assertEquals(2, result.size()); + verify(orderRepository).findAll(); + } + + @Test + void findById_WhenOrderExists_ShouldReturnOrder() { + + Long orderId = 1L; + Customer customer = new Customer("Иван", "ivan@mail.ru"); + Delivery delivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Order order = new Order(customer, delivery, "В пути"); + OrderRs orderRs = new OrderRs(); + + when(orderRepository.findById(orderId)).thenReturn(Optional.of(order)); + when(orderMapper.toResponse(order)).thenReturn(orderRs); + + + Optional result = orderService.findById(orderId); + + + assertTrue(result.isPresent()); + verify(orderRepository).findById(orderId); + } + + @Test + void create_WhenValidData_ShouldCreateOrder() { + + OrderRq request = new OrderRq(1L, 1L, "В пути"); + + Customer customer = new Customer("Иван", "ivan@mail.ru"); + Delivery delivery = new Delivery("TRACK001", "Москва", "В пути", "Иван Иванов"); + Order order = new Order(customer, delivery, "В пути"); + Order savedOrder = new Order(customer, delivery, "В пути"); + OrderRs response = new OrderRs(); + + + when(customerRepository.findById(1L)).thenReturn(Optional.of(customer)); + when(deliveryRepository.findById(1L)).thenReturn(Optional.of(delivery)); + when(orderMapper.toEntity(request)).thenReturn(order); + when(orderRepository.save(order)).thenReturn(savedOrder); + when(orderMapper.toResponse(savedOrder)).thenReturn(response); + + + OrderRs result = orderService.create(request); + + + assertNotNull(result); + verify(orderRepository).save(order); + verify(customerRepository).findById(1L); + verify(deliveryRepository).findById(1L); + } + + @Test +void create_WhenCustomerNotFound_ShouldThrowException() { + + OrderRq request = new OrderRq(999L, 1L, "В пути"); + + + when(customerRepository.findById(999L)).thenReturn(Optional.empty()); + + + + assertThrows(IllegalArgumentException.class, () -> { + orderService.create(request); + }); + + + verify(deliveryRepository, never()).findById(any()); +} + + @Test + void update_WhenOrderExists_ShouldUpdateOrder() { + + Long orderId = 1L; + OrderRq request = new OrderRq(2L, 2L, "Доставлено"); + + Customer customer = new Customer("Петр", "petr@mail.ru"); + Delivery delivery = new Delivery("TRACK002", "СПб", "Доставлено", "Петр Петров"); + Order existingOrder = new Order(customer, delivery, "В пути"); + Order updatedOrder = new Order(customer, delivery, "Доставлено"); + OrderRs response = new OrderRs(); + + when(orderRepository.findById(orderId)).thenReturn(Optional.of(existingOrder)); + when(customerRepository.findById(2L)).thenReturn(Optional.of(customer)); + when(deliveryRepository.findById(2L)).thenReturn(Optional.of(delivery)); + when(orderRepository.save(existingOrder)).thenReturn(updatedOrder); + when(orderMapper.toResponse(updatedOrder)).thenReturn(response); + + + Optional result = orderService.update(orderId, request); + + + assertTrue(result.isPresent()); + assertEquals("Доставлено", existingOrder.getStatus()); + verify(orderRepository).save(existingOrder); + } + + @Test + void delete_WhenOrderExists_ShouldDeleteOrder() { + + Long orderId = 1L; + when(orderRepository.existsById(orderId)).thenReturn(true); + + + boolean result = orderService.delete(orderId); + + + assertTrue(result); + verify(orderRepository).deleteById(orderId); + } + + @Test + void delete_WhenOrderNotExists_ShouldReturnFalse() { + + Long orderId = 999L; + when(orderRepository.existsById(orderId)).thenReturn(false); + + + boolean result = orderService.delete(orderId); + + + assertFalse(result); + verify(orderRepository, never()).deleteById(orderId); + } +} \ No newline at end of file