From 77d5be8fd1560306ae6f2e250921bc12cdecdc1c Mon Sep 17 00:00:00 2001 From: Zahar Date: Sat, 27 Sep 2025 09:31:40 +0800 Subject: [PATCH] feat(api,ui,db): add address, guest users, image URLs; update API - Backend: - Add address column to tickets and migration script - Create guest users when user_id is missing; accept user_name and address - Normalize stored image paths and expose absolute image_url - Introduce utils for path normalization and ticket serialization - Add CORS configuration for dashboard/emulator origins - Tickets API: - Serialize via ticket_to_dict with consistent schema - Change status update to PATCH /api/tickets/{id}/status with JSON body - Add DELETE /api/tickets/{id} with safe file removal - Dashboard: - Fetch tickets from backend, show thumbnails, absolute image URLs - Status select + PATCH updates, toasts for feedback - Add i18n key btn.viewDetails - Mobile app: - Persist device user_id via SharedPreferences - Fetch and merge API tickets; prefer network imageUrl - Submit user_name and address; delete via API when available - Make location acquisition robust with fallbacks and non-blocking UX - Android/deps: - Disable Geolocator NMEA listener to prevent crashes - Downgrade geolocator to ^11.0.0 for stability BREAKING CHANGE: - Status endpoint changed from PATCH /api/tickets/{id}?new_status=... to PATCH /api/tickets/{id}/status with JSON body: {"status":"in_progress"}. - /api/tickets and /api/tickets/{id} responses now use "id" (replacing "ticket_id"), include "image_url", and normalize fields for clients. Update consumers to use the new schema. --- android/app/src/main/AndroidManifest.xml | 5 + assets/lang/en.json | 1 + assets/lang/ms.json | 1 + backend/app/db/fixmate.db | Bin 45056 -> 45056 bytes backend/app/models/ticket_model.py | 1 + backend/app/routes/report.py | 66 +++-- backend/app/routes/tickets.py | 81 +++--- backend/app/services/ticket_service.py | 74 +++++- backend/app/utils.py | 100 ++++++++ backend/main.py | 20 ++ backend/scripts/add_address_column.py | 33 +++ .../bdb41802-b2a9-4d4b-ad60-5491be7987c8.jpg | Bin 0 -> 110351 bytes .../d35f86a2-08b5-47d6-bcfd-c59c8ccee275.jpg | Bin 0 -> 92340 bytes dashboard/app.js | 240 +++++++++++------- dashboard/i18n/en.json | 1 + dashboard/i18n/ms.json | 1 + devtools_options.yaml | 3 + lib/models/report.dart | 17 ++ lib/screens/map/map_screen.dart | 27 +- lib/screens/my_reports/my_reports_screen.dart | 49 +++- lib/screens/report_flow/capture_screen.dart | 30 ++- lib/services/api_service.dart | 73 +++++- lib/services/location_service.dart | 69 ++++- lib/services/storage.dart | 34 ++- lib/widgets/report_card.dart | 120 ++++++--- pubspec.lock | 8 +- pubspec.yaml | 2 +- 27 files changed, 800 insertions(+), 256 deletions(-) create mode 100644 backend/app/utils.py create mode 100644 backend/scripts/add_address_column.py create mode 100644 backend/static/uploads/bdb41802-b2a9-4d4b-ad60-5491be7987c8.jpg create mode 100644 backend/static/uploads/d35f86a2-08b5-47d6-bcfd-c59c8ccee275.jpg create mode 100644 devtools_options.yaml diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6611a75..665f51a 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -35,6 +35,11 @@ + + + )R7no* zuWBl#URpkZzWbet=<+N=+y$~syrK1xpKEce+4^xO)3P21f8ln{^qnW19f4j!*f;q{ zf}$vk+rD`x*~Oj@vx~(BUcVGO?*~#>Z90FaH;mvv+35@D-;^<KrP=HAIHAcYc2zqSZ)fo%wOp zb#vud#AWXAd+7n^w*US(_s(K7D)#e^zL4AJqtuT(DJrjPuzL|lm$MW)5bV^M z7=5G|m|K_95T~MKkh9bD5xey9E7R%AoXnyrJ3}s~n+N#EOL+Iwf&c2Xn^juhS7>>e zn$}f(0?=qWonAk;p?$_Qi4$o{tgxAPu3t)Jq$s%PHazYuP@q0i2o?tsp|ExY5KPVq z4K3LOTAV&1rnVWjpWU_k^_BkCRr^p)&}sl1$M<@rK@fq+GQ^w*gyA?ct7ksRP;|bN z|D3~|>${(88LgVnKvOrMARZWk&9cY|S`HNSjsj>e-mhk6*5`VOq@i4!C(nQ;x19s> zAxdt_s9gOFMVf)7w`h8Q-46GA>(VvF z+sx~KzP-fmnWEO6)*>#AN_?;C0x7P?OqFRa^fkX#RJRUZ2Rqv(+lVQf<~f)KQL{`+ zAu{ldQ=e}&p<=G=(1dfK(0RKNbb<@c)%8+E44TCW+arhD#;KIw0Uyg@85&-J@MNGy zYqL7Ur}gnx9$?SiK-Dt6w)J7(bS2)DICb)~u&!v z7d<79IW%|3d{(tnB-;W4+neV~0&p?IA*z`63EUVCyem`^4Q%P|->Ol?<`xV;`7`e? zhsZaE%pt!hRLhn1(fa+oi$$M2W#`8mP_>gL3kAHH8q!8x-G1$<#J?u9X9y7JRvKvJ zj>d4hs>`i}j#PwPx|J7jvhv4_$92Vxz0kG){>T~Oz4-~F<87ZT)J<7{OVUPwp$U+? z8My~m_{&CekHT~8eY`c^)?Idk$~7b9dx!6-I6}30ejco=_G7b%_(E=d9F#f z1Nqu(lhPuR>IzD^`CX#4Sctk7^(Y5)?+r`x6t`dFZP^a8PPc7mZ|5NNj~7DbTk9Gn z%;}qAm#P%>DE$^PmORA`+57jtspUzgq(YYp8_3X~0%7;)z^M)oOWg!bt;wv3w$27+ zVG-94P5mdHx4!tiz$ySaMFw8;cZ1H#HLTS(g^HaK(U*ZY+{ls>7e+@q;GKw=YT(rO z9dCVj2sz5Hihh$zAm*}?TxwT=)uEV4*n6sJCPpg;1oJpz$ zoja;@D>v2K>7`J=@e8#FcL6k0$D;s&Bzz+IzIGriP5NcxeIHEs@)qy9+421oY3&St zo$@KOV7J1GK!bOsur?2`nzMHudY!~(=WN``;ywTyCaJY5$C0{fjvJ$-FAIR6@Dw63 zsg3MQBg|`#n)SHek-R|iUu&11-2pbvrkjUtg{N(fThh*a@HlNSlO$##;|ln0vZp5% z=v4o+-LlG__$m`9P*f^eemyRCI%I+P2V7-?q_*W`pAwP28~Cr-C-c zT!YU%$B09v0_grm9(Rkg|6v-%FV&B9TD({&>-NES5I~}B=Q`O7Re?2EawI;iX7=KG zI(n29)Szn~55{rCZ{BZyk8Kvc?YmNbSO@)NCZyt|Pm`^vk&yEj#L=)?S^ zno}0A&_yLq(+9lVzknA*PdG`PxRh1aYY20$&w(Bq+$tp1&P=6E%DS1S-@NY_%CFJ= z?4V)q-1C4GDKQ{=ySVN;dG^T%%>CM{d-SMDU8wwT>&268opGHP% zL_~_V9YdA5UHut6NN+p3aMbT9HhIB2iujlvVR6?7`W~G+r*zo3sl+A+LwCh$b`E1F zNk=Z)f46O`9LYbhA$&4@^D9>VG^uUUc+~yC7l1nMSCk2wu2I$y5cfFy_aJq~IZUl; z;v@>H7wbBGyBYgkDlutnquG>w@J9ffw>DfPmONE*&0Vi-V9m-_k;~K{ZT)D7?gh$x zUIIwiO^H&l%B|3cjn%mS{@6G^_My2!dwd^N1=^55hxpPCu3NouE-k#oblWeZ6>=fQ zjHrKnZfQfsDwU-l=+F(<8Us)O6{Mc-F|4#>@ zqm4dFnD?Y}?nJ^YhKai#=SSUkN^gUqQ%NMV}t{diMu_V4CK zirBNR2(V(f@J=dg!|3n-CAYcnk;t(fKX&7Ghp5-GpynFC4MYS;8IL)0tl4A+>d!1u zXd^`;i%vqdyf*47;FO^-&X2v+QQ~LqfCIY*s<9den_g1!gu4I*$+&#RG+%m^dntr- z5KrCnSDTw&9!V4$`|U&G>l7$qzTh(zw!n+raSH^zaoo}bF~Ny%a>OR*&2rdrxvzl{4jJ;p(0i&M$*F4jr!R76udLgr(0gGU(_5)7II zx>c1_92A$6Q#?%{D!bxy`N5W#j)v&i-(*gw(rf0#7s*$y`p42#4WUNf%1t;u^V&7V z(aG;x?>I8*5F^a{&7&T2Ho0_eXaW2=IG5vMq>X$)Ma&zT(;+nc~!|v<#&;O91GGx#mukF zQEJmfRDbU~t1fmg&KvK6&$I~9N_xJ~=LYo<;3q>|02IuBf7C6r;t$qM9#qbS=sOir z`(15xFDh*u^U8Tl48Z7;NQXM4v3d-=tD@|ySw}DahaZ&ssU&Hs4qY4P@aUOffMlW z#nOiklx8)({EZG2U0;ky)2BVPgW1`tbY0wlo@oXjsZKj=*Z1pd#nqph;j2UC8(Q9KXfle=Q-@$0U_)5PJvOosVJ=_QIgH7x)yJZ|3Eg^F%!@EgpCQrLV0v;O`Rt8z`?9&in?5xXcf-wKe*mmU1Kaw&H|sf zHt3O#s;>cf+c<#LJ@8F9P1&+Bt>8WVhl}YyE3t*q)ejEK3Bl0rO~%|X;1S)669IH9 z0I+0gmZq(Faar#KPFe8o)X&20zhxn6gAVXYM0#x{9cN?VI-Zr?idU13TtBm{lU;oTYwNXUjGWu8z_)Xbg7yrRX+Z_yU*sVTiHIOYgK)ml z^F=$%UNMcJhVV1draXX(|`YWrO~ANjfF|Q=(lAb?T5cU^aP-4WlTN~&me%<+^93<*ZoFs zUTG?U3DXFeLIteN@wm1FSTZDBXNifSY|_L#xuHW_}Z7Iq;vJ5O2AXwvVewzJ^Ff*pR+?T)2lV35`La zYR4Ob7wR@s6PJ?>%(k*siV502x%sZaY9c4(FOxht4>ZRb?9b2*5dh0L=a&AUPU4l+ zrRL1ky!c(qo0zxMYO{wd0H6h&E?s=lx2-9+I+5p}cnAMud7vf$h?H|hX-e6S;~nS5 zF}hibDHTOuQ^Xiv@5`bJ3Uz9fPRi<*!sqaYeMrJm4?fBCQy7k$KC}+u0Wjm?rhu}q zF6F{T!-DU>5I$@!{McnYFzr^iL00wPCVF1i9;!oS>?(+8pReiX^ON;wtrz9^_MN>2 zCCCA3kcBC`DnJ;|X$p1YgkqFMB!OcBXY9ABOQra7Wq{q577D~gDh?+X3*0nI z`+dXQIheUjD)(#US`9|mutI4TvXoTL>fw|D1}h)0eI8 z#E;!Hr6qq!_eG23y+vzGKU5J~ac8jcqfICpq#?pE;lsR>u&Lluqq*F4Wbnq$%tzBi zaPy^kLMwq(A49b(t9Iq6!m2AWq2k)nzM8v*VL8ETz;}l#ut3XyeG=`cH(wXLoCtWr z)IgwvX8eiIKbJgCR%bb%IoN1Dd-0|!%XiN0JaQ0zI=DA`7W~^2ia8)zo$6IfmK901 zqM*=xLy93olFlV|FLOR7G;QB!|Cs8feE!L2FkWh~pi0;T*)PhR)T~wiEA-wzW$p>| zFL@h1L_=mX77U(s_wm(?6Xt?0VTQ62!oVUb_bF(wa7t3I>yoo|#rMof!OUy7cV=472w5akZkw_U)97?%+T@Q=GT2sibz^TWLHC!9Y?7K0pto}F zIfz4(NByXnq-&30zCX|KopGAwX8ymzp=db`#d3T1rNBX7)~!%L@!^>DF24F-%-o|3 z0SVyGATBYOI@z_+&mZ(K-Y5-!8k4Jq)w7Rx!tA6?TK;=?>8dT3-0av%P*==;vOcCL z%_ZO7KrQq{q4fJ!-rYEEej;~cFtUIMPgf!sqG!!P!bdHdDjYX@1=)6N2HO$6ebDR$ zlR`b>a*K)3%MP!ZzC&wqsHHDJFPa1Gur1Lna#)vX^h&lFph7|*?IId)Xn)K-|yq)XF;!uDqQ97 z6dmb-A&{N1_BK)@ayWq{PqC0V=kx4ItrZP3zKDVR4wS#~_=jo*_jlO~uoV4NY5#`M z%o`~YUcT=aH8nOqny%i4qRoD=#vv;J2J+*xyS#1}kBhP?reH-TFc1VX1m!vUq7L=r z?ninMiIQ>l+PkW&bj681?arTWplZMrtLqcxY?!m zVr~C9izNBS0sz{yvFIA#tf8wLbVoT`PQFZ`FhxZOWuy9|H20X~PySTB3W(%cxly^E z2j@d_7IyJqiPaMytCMlfS&{CEyebY~Puu{#zp`S&NOe#*li_xFaM{*ywea-!<4Jm&#npp8x;taKCZHTKtWN z%q?Rk7U8gy@!H1LU}j8jMTpT(_dy1d_cFCUp2%wy+wt8WnD=-(V{!wd|K`3&$Ee^2 zaQCLLr zJw|I}uPNrVwrkhFklROD#*|jYSuHN%Uh0a7-_N1_xKHlxE&xH?BdvWgTT8DNLfhO1 z2T%jm>Usq)&Sb2k=u75^_e)1D0e|Z~&Mk}PR&U_0aO)6&JOCdT`I*6k52`jM_V;-M zp2&CM-k$DLl%ouRc*?kYXgn$9js=)S$C0i+=@5 z2_1gERbpCu;cM*%znm@15=S|W^BoKp=9VTcW}Z0LtbP2O<=Q$KX?$i zt-|GND<6Te0`51SPS30{mAZFbR%JEfR+V`0BG_IQ9HwHJxKQXYj0P{Nm2pOzBAJ2y z)G6r~bH%%<7juq`M}KAI+Uyzn`zm4JuJQzLDFoyJunpPSTd$Mh60evgy8^Qo9#k`a zbJB#RBkpNg*z?84*411U=T@83=R?LDQauEK0(?UZqSg6c6c7*6kJq|+iqK}es=iPd zIU>cEV*=X-SQWmy33^U1?xO2;5>xqzmXH4VwDuX)A=+lZG;%+@sof4d;?J>*pFH*( zWwQGjhPMp~vL~)(enA)$;S6TX+OAEM!ntpE&zpR!kBpo0l={{pZO@;*sg!ebNPIjk zouj&;0X0U~0GAY9Y;Y9TfMQZDKng207Jz5&rJuIv!{8YzfDl{`-bDb&u z&Ebh;;lrf0v9JplI_vvy3J*UU2m=KbWIf_a>*JK}VLZ)F45+WvxA)&!pH_U;5;L%b ze;+wVj*&2mG2pA6>HkHvi)rnMI)@G*|C}#yMp8|5 z&IoF@P_uQKkb~Y2s*xM>VYMK$Sin8s<8*YP$#r)yGgU?1%VPlQa-$=-N1Ej?G(Z+rQr7tu zyUr|jgAi=%df=GqXlHGPVum97@*XTKgc=^#(QQ$+nSx10&32SedxX91vdC@$%O!|0 znVc9)%)uCCbpDj7^;EU?V}TGKsVSaz0U5vw>c1uado2Og;j_hJpW1?B6gl2SOBt$z z{+D)0acueGD7N=&+w&@WG(dXmt48GD&`rDo5VAI{9F`O7_y>i1X8M$P{yEqw#) zt}L?Kl4dMMf9UWz?he)lewD_*AT3qZ+`Oe>Q>jklLq!DPl5m`|v3Y5vexld5mtunY z1{Up?P1=%k`tI9iuopDGt*IWNlJnDriSsce{M>~cuNo2AwI0zpE6uElv zW+@&`Ws2r0S3)uSxZWA&u%xd}g_loz`X!}ulAz1NWFk)a>Wb_D&Ky>fw)ZVl=gO2p zcH;W7=I|?ToxF5`QkChl8+3@g@6f|T;^R$Q@99+C3ncF_-Wx>gai+tavzCH&${nsh zIdI@9i=~a88WF`I?>Yu!#rYYLzcODNK`}>5WU+>R$_jDe^a;g!%+@Np9+KS(jIjUK zj_i05tGuj#8Fv;PcgKz+N1vVcJz7FUp#1ev)zvN-<<5kAj>S?E2*rpshG!Y{yQd(F0TIkXY$1R63dgUBRG|~Twg>bqrUpZ8= zi-gssLd8|#UxrHdL-$gUzb@!61#MfH_Avg!yAKIYLqo%e*#MUNp# zZZGAsiZwXpF>mtwxS_7m67Ud?)FK4iyWUj3Z>}Q!Nq<=6D^n26owKKj1_o5H%5&}p zM4QC%wGn~On$NG>;GoM_?2G=E>*Ko;7de@uK!ak}F*HsN%16%=U*n(c=A9lL0hZP+b=AZ;5ZvHkNhGK<_UmXXmJt*OgN4eZ z9((&n11`Bhz2C~#5)T4+NByVX^bQD}rU8aoXM!4-79Q2JS^XTLZqWNd)ooelhufTF z)Ba-i)8Cvv8$^XzXSKvuOO6|%k|R^qPrp7dC5{(QD(Cz;B^o=iv67ZLgHfN`1h4$W z^sF^?v2e893(*3?-?RlEC7{e-Be9s4i8f<%e{rPiZb7jOeM4`qd@(eBMDhB-4PMh7a{HfD<+tzR?@E2yGN! z-)d-$lIJNZ>uxHGEU}^D`hQ*kAy9fO{!ipVDak7O`CRgo=0>UV70Q63PrP%_9Mok~ zU=TJq(~xoVUT10a&JziKWxU~&W@RtPVT12aesHD##^ubLFxL}b{k{uzrMA8=^5e5W z6AO?`u_x_Eci+%UCmUOsnn}T$I@aP!+hV#zhw!lkyIyxlw_caD0f-M+YIwd8m3k|; zQYVnGzUaaACeVwI;yUx86;~w5luq!4`nIt6;*duZ0QJY?Sec7*nL@v`i8Vr z$nyS2!NmF5e!~v)omnfV1|~K@@crT8IRq+n_=A&ZF)tX%$y$_8p>0EAGT!0o0a7dH zg>l$X6&s>7uM9_%e!Ts8X1Qa>0`Ne2Hr|Gx|62WWEjk-kd`I9fpN#ZQd5iX^M+I8( z{Y_NG)p2f#NkQ?pA^x+7a232U*h3w>#Ym-#uaE@w*s9~^5~Duo{N9x-pBGaa7XXu?&bXsSNX`|NLMICd?mwMN^LjB=uy^Cndo9F0~I_Iayq9W z!;SDOT7ubFVaeSPok<$cH{(*xmi=?8d4f}y-~AJ_kdRbJgInrT6p6m;WCg{curfxEKz@P9W--+kS0XWWX_@)GM!F&NXIcb!!8{_?}|=ly~%)*u^661i%$Pc*jn zFmg})@k@x+)*aW9nU4*qak|B*K=d`$@A zqnU5EX?NgUq*Upw252ZOKFi`<>J)+K%NcIiY38>wskd%M_p2|nO%SbgHr%0T{dXFp zBBLLtMvG>jADk$|A4D{L&E0)~jvAikA(d>TJf%-^eoOP9(;3bV$_d zK1f_YXqS9y{_H_*$(?|HiqvjO*!krU?iB@tEzrVR5|Ds7xH zHlV+(EjXpzzLmtd$FQJKh+=7{dPefv2mfw)0fSpayb)h?0Yd#~CIOAPXWN`6mi{0| zg!8gLWLF7QssB63msnd&xs8Wuj7Zgq>&cfk-CqH;l{EpQ>k0~M+6aN7gXl}T=M-qJ zWyvm^H#*cmL;jpnQ}EO%8b-qmaLrC7@)=CRVY}qU#2sH<>H1oO0BnIt_&21VVdm+C z844z`S9VmIBbDEHFQNOFp-uINSx%5W)d%=zJb{|@;e?2ppR?!=VJeHgX_D(;vGh66 z|0gMoZ8_G5lpmw7=Kc+3D0`;@kpt6Nf|s)&Vqy1D+{0*G9!mk-woe30_ZiaM*o*#~ z2ubrrO&L@*8!V!H+I$uFS}A=$+1QrP3k>jG`&!30Mz+E|+^M1kFEfRb;X1c@&&~r8 zMnH9&(2}a6yuDa0uBXj;iGbYV^a_aY)>(wkA~rS2aDW6La4}cfd#d8H#}JGpsFP1a zI2bgZY*_GK{^q5EOu;eT&ya*m*e!a4MRuDYWgJE#t7+|Jj|&HF1nf}WeQVogc7e!O zX?0NX@;&@bQ-W4bZ_`t)>b27lk5EsR{dh1OMV!ZqhRyQX6yMrWW!JXrlrf& zWZ!-DScQNffzbj^6s^14onUbN(Qr17#^ z%(F{L7D<6Yz1f!?&FAcoel*8COS$tA@l^I&PKB%qG-1F#R-Iq9b#-O-prQT&mFW<| zd!1EblR9s`PP3=}W-z3y)oj-O;gj5VWBa&omW6POe_x%<(|HdB1!T4QBvk~Ew^Nn` z4)w!0y`WGD{3H_0yRHMm6Fke~jQA`=~?ueXaLa>Y9^R9j7Y`CzgwOQkO*L7d7j4bOdBMD+XSD zl5->yre($50rH*{ZBuv)^1H*LM)vpRU{59dyJvshy!t}qjq*@hu}{WO<;}ScM-^bY zs2tN+LXW=l?MkH|%Vv)lOvLnHS4t(ZTjtnaYI;0189X8*Zt2IDmZ@P+43DXga>{pd zo)k2?&$?idAK!N+o*l02Kegz3(YC3TgItm})j(?WlpZm+b+^8r+S`4mK!TjNl>yh# zxtj1Mr`Ngbm#e1p6SHjBTQo#9{7zrEgaNOehc}QS^D#a zHu1P%k@~-oC#20^iVH(VfY;(8mF|2Us%Qy8%!(C$Eh(u(Du_Emgbfx$2qyM9^Q7(wUrMqeIC6trmFTpHu~sa$ebKw$n+X4aeo zDlKiY$tbzZ5z;BRvDRdCx26^=e+qVXGzr%niv;#H`6-_q{di~&6PF%wl zUyB^8XV-e|eU47@THBq^*-7!6JemC2l^FfaQo!rC0mr^SVEh8}$i17B__*T24}gS zCc;_+N>D}|>Au0Wl~9Lx;6Aaa=a6U|{-pR^#otizTF@K_6W=Hf_&ov%) zgO=uB(QYbzyQXa_QT&sgh&XSQeO!6ljK^?PCu|p(lxn{2rRIs6E9{I^e6~q=3OtSW=XlEnmBoq?gxgH;{l_ zQ(Xxb*AGnLPJ8sMtRbL!`c9JThz}dyy?J+$=gOwX=EZMHQr4T~(=vpbw3#9Ljs^>q zrCf99TqBeg*{xZZXmXr`qmi9LO6u|z(+O|Sq$>ZGh9&=SWAu_LWpHtl@{uzb3MVe1a!T`{6_7E#8hR?Et=VUxxAzOrdfqRtg5V0Zo&2Pi{Z=!AG zFLZUF&G_82f7~l}wx_`j0Q{)sm$6hc{|ArVB&MF40!H)uhR9#A$sf(6C-p+mZIhrNy=)Jw0PFldhL= z+mH_8A;v^um(~`M_Q7BCgMx2GPlb;NYpND4xc-G5q>CD7JRx2rpkln_ZnoX&Wj3st zHQ`MHRY*^tHn7|oA5|CF&>d=zT(-BB@Uc^sW$Bx=a^asQWK{(TfvlXu8Ts*^Iai)^ z8&pnrEzy5j|97i_W`eQHPEOCTv=@UP2KCfAzfbicVCXf9i9l*-yu5Sv0=Zt^N%fMh zM^3QGj|eG#Gj;+%9vk?{%SGj{nFsneGVVsy~rjs zTjilwgeUK8TULo_aw1HPGGF!d4YSy>?UcS$6E}ca3jzUsieqQueBbSzUrwtcdtbF) zz5et{^}JG**m6tik4mFwPp~33jQxpmF`I*cuAFbuGGcJW%Q%BrxWjdW`hPDMSMrTV zwxWqP&5=D-Tjc(~jo#a)B%bl_&&gVx>*M8!OJKm#w&(VPKr7|%Pj@~XZK3fv%5kIX zq?Bk8Y*~3X$^PtqoA!(ikT}v;yXmk2PSwQQORyA)hF9jU8D-IrS6{nVQZgVmTMFHv zy|jb+jgC-lX<;gjpHq!)*2q z9_w5IZM@@a3V1oNj?K^b?>DjEB^`0i`i6e2gJFK7`63)xa#w8677h-X=6z|(rTk)wT2J;S6p58~ai9mIfr!sO=WQJu& zU#HHZ7c$jX0HMT>Z)(uSo$cR58&x5ZO(5#u6OQB9mVJEm-{fOpO$YS9%kWhZ1{OD0 z(&S?&a{l2H@x^~g52C1vLusXiF`xOD%Pf=J)I|Op$x$2WLI^unf!YJXWqD~lV*OYX zzB#FKeg*l)y<;QLzuu4}WZ%11C&eX-+$M5YkQIbqUQTTBu+ZGvlBp(iFAd57j=gk$ z*rQa2J+)`a*@qAo*^(jJHJjFtMKKh8#6YcZ8RWdHs1HCQ*jt1mm4X{wmWm3@lc%08B_kTu8iH(au_Hc4epEUyyN;+(F zloTPS>2-;{p-GWT<70ROsK7YZnQHg#{MMm7>rIyYb19?EqKYmWz&>bEkkrAoD$GdeJE=RZktE!^nPxKI~S9gP40F+ZF~K4d30h zjZZtgh~-n41+)m|{c-wg5{nUNvQI;a)$uDu1$FJIul-94@doVBVv}4j$DM}lWmLMe z_#%ym>=#^l%$H9bi*nTc>s*oJ=)A^hB0FCKPoGkAbWp3E^4X~JVq2Ju*eV>$JP`$G zIBZyIcH<)pmIm0UTMg^@0jHdhMfu# zQ7!dGL&#(_&Z?tkk*dIaYvu>%6xa_k_)5N33d=}LOnE*iAD=d`X|pj4_z_w|sU?)= zXQr_~k8KE{)4w_0m7gnpaMF56sQus!s@<4sZH{QytO|txi1FOlE;bG^VJFF&W#e)y z?NAx&5T~tZ3FyxDNfrDF_Z7!WChO8DA=KOC7ade_#xfMBh7=N-BWGTD*vGG#7P>q* z`|jOh8XV=UB(FfR@~)uJ_mjon!_Twki@XQ6%fl23f4(X)-rqqvzu4V6vU(EfB zRl+G#8d?9!y%I5N*Xz6DnNo4YR6`U8N8|d-)sPcSrnY^uS zu)S`AR`M>Vmj%lN(BSc>S!8Cw-nw#8oS=8U3UMoFkS^yY2eRJ$U{T|Z1z!;MpAp*C zp~5x0ms-B1#t!ZH-COFpR-L+Ti36*2J|La9&T)oFDG2AZ{1HG@bZj-?`! zukJVD1x1EDm+x#_+%y6`V3yAGYy;UNjH<;qHVJ*@ckXXrN(!mZL-Xmm9Nf*Vd);Js z@0Gjm2F&t7fVRwapZpDY6Y9+T#jHndhAbbBXc`Gk>p<`P=EYvv=G}rG7bwha>_)%+ z6-rI5!>p{cF4bHzDVk395W`dF((BH+uQeVci&0j#(wF`tMqj+sP2Y{u#gyN0;J(k3 z@$Q2XHa%D`|KbhUEPP$qso0Q|mcxE5);IY>+5IEmie?iV2kEM7o3;dY2 z5OAAkbm&lc##$3oNUg0Vd}Cp&8vavP^M8CZ34Fz`)Q*<8+lgoxIA1V^WGMeR6(YdX z6vlf7*XhqQ=2Ip@=p!QDVU-dyJ}iF+*{_R#|LFrsd7ia@;_zw!EwrV3I!{V+KmG@^ zHPF&~2TaDM3&p|qpGnabi*T5eD$CJ9*uBwTy-A z2q-L7cYZw#Ud8#I|8zVFkw5ZKG3PorZVr~%^7NQ79=tV_A;sXj&Y!<<09=wIqGouW zs=D^1_5r1*HBcQ#hw$;liSPH-QSWd9aQIO6LTmVx0_@#EXS4P3U``U0oF`Kk*&)$2 zTf_M9!D-<=_`&U;=9BzfgE;q$i8pjuWl}p+vhT#{V{r17p=YAqcIYd5tvm#}@bu+& z6oTd}P*R_GP=DWM;KntILVE6uy&IfenK-7E?Rx$s-}*-fRvhnY=pkjJr%wkY5J*p= zQk8|`Pwe}tYciq?X;G_;Ifu$&S=Vr{Msu-K>nc;zeAoevGvj#B=Nx;tIkn%-Q7E+u zW(h*OKvpDGkL|AL@!|8B(>yGB$W#S8$~~YDvAs0IuLhf4DJ4c0y*?Xo&buIEMdLKA zam9zBUOQC}{g#3`8K3CA_jDId5ArdhlsCLFVKbOF0fo z-&kpUW$qbmbz>zRmpHJwh2}8o?yf0*?M!Vwsgw=<$RtC&9*k)^yad6P+okgfpK3fAuJMY}ziK`n+WoSCZ zo%eF*jpczX6NN4lTobi#%w(1ySUY+FCZYEmX)0%;P4b+77<$tY9~KvNDKjO*1K7o8 zZ@x13dAlRM8o!099QB>F6DQ4=QKiRK%bI8&7@yE1(>y8VnJ&StdkdhQjNarLiG;4Q zkjR$v@-KXj9bVK8ryur+fcn`Ub6v5hw<_t7hFqU+yMDt~10r9PWR18Hw}88#LRLej z7)E!GgHYQn;8*;y1Z6g8#vYOllPyyB`g4j_?M?zZPkU=|rqBB=9fjqV{}$>uWK{Wu zGy;O^VLZn2*}DSCNM)8W^^Af9@9Z1|e4M>^@&R@d_K2dYsLHw)>4|q0c=VB*+4=FO z{n1g&zfKN6FFuhJWC?MUQWqEZeK({z$RR(YefZ#f@gz#N_=UG^S4cWsf@(kx-)0}Z z71({?T(}(cz|tr_^%>TpQAg017AHB=kj}~T=ak`zyddIWCbH0f{`w`8GV@OrOl=9-MlWq2EL5?yEvN|o{^{_1x2AF&P&v+5X94VAiBNpkrxg{9BCoJ$LT!$z%@JAv z3Xhyn5WMTkM~JTCfrA@5m581y!c@?)CgUQ?0oh-!vvKKw?41y8zH~rJWk6hc#t1Qp z+IS|+y@ndp@R$9%b{wBcVq*H3ki3&#ggQ29F(t=27bm&PXJF3yZ#4;T0Lgnhc-PCF zXi$dVoE0W)DVnV=YlgljU6O?j#b1K!#(uVPpZ6pyhLp?~yj;RE9 z{M~!WN@f6vAI8x+;mxbS=AxIxW&B10xO2}01Iyccjpb= zV$JYiJ%q8hp$_;=gp-29fU@*?X4Q|#My7wbzMIqH=Eg+MoNOJFDkrA2wWy%9WL&3m zp(Y?_5$ZBa*hsfyH29b|gBM>(WmUQnL%btZ6h~hIGOr>mZIAHfmd=9Hf|1iS=lM}c ztfW0=T<)Nm+i%=av`k9;xi01jwBp)@3|MW_M@q{(QMF|~OhZ&l9C>_@0XpiPEh?oL z^rcaUG(S5(l)&*E3WL{+v>0tew=b zp6jZrYMi;}vQVTV@x68utQD730Jr6+>IKk?(awSSE^WCkbaC^1B-H80@bQS=*dho< z8UDo-9*ZH+mv4@b3C*#zZVFAw4@)X8$$5I;m>e`xc;bb)4U2=#wMI*X6weob)Ym6V z$OvU-KJWi@ITyF5p%QOv#OEfNZdc**EycLU6$D0%RL8GZYK#6kmF^TS3M_u<*kz@7BE9w84->i!d-O>NVRK2mEU$KV z^efW^B_H;0v>yMrN{6nnFf<9ocF#fmGA0<^HAp{i(7F!VS&QZq9M?pu8%SAwu+C#BazDW;Q`DlKt04)Ip%pSbM|#uJ0L@n-C)#{mgljK;Y&yE| zDNwFea#WVq-L#dDqlESH@=IFPP?q8d(GsBjs5zhV8MjTx5~D6vHQuuWqaBC+S7Wu! z)b~RBXF)Qmd%nt&^UPd}+ATP@kfr%HxX^8GrCR4Ed(J*Vi=P7Sk3&^rCofHMlBgxw#vR`=NrR12 zssb6Q_qW#K8ZQvg+j|*S`(FHbsj;{ursVwYBl&Dift?pKV3{cPuVuniB*RWiuuZgS zS%m`a7U7k{f7Hy3rE_>NxQ4NY^^#aePIWS*pc#CgW9Q{4q#M~`p zuE0$CkkG5WTE9pbc3loieZ`MiIy+k8h@6PhjbF3fle$tJ7#7dZA2PUqt*TKWHhZJ8Ia0Zy-603LS!VC7%`i#^DXQzmez0fb46=Qg z9k7n4#PBK~&nA3<94bDiF2(wjMNT(VTx}oQ8p&kYXE$7bW~zeGwk0{-s7Ww&>wT7* z%;wlg@iDLJBp%(wd@&!=dA|*$BM{`Z-%W~b7L_mNr?z@mKy~M>dq5xf=sot_z~ppg z(ukUkf7OgI$sM6EvJl&r$N5f0u{$?*mW(}gdC7JQbfgNO)6F5MKSw$b zy@4js)G$of5pzylKib4#tf8Ti|0|@5uxosIIpVP@1N=JKRn5>nF64|!Wn(z>!oXz zd2^u|*sedPOn&6V*Y(l`WV(pae@-!vv=qic4g`Cj4Dt$y^J=Qfl5h5J zFPX~HIa-Z|_-`);E4heJ%x6*rzj0bvR$s7D5}0;2i>CaQmi!_bg zyKKz>jt8ORR5vcl>gUq-kL+^tbf@)zlcKC-`AVqix)nKL_!iv!uJLOKMdBL`6b+11 zPeuUM)Ypuz_bnBgPR@#we2sEg)T=i1kT(+Qu{sOis40x7z)F~wM+ts24ZmL}7)e@K zQ5hHTRVL=`$@|zVE=(CvCCtEkUtQVQmL%vW*YICr-nP>-!+5>-%qBy!VpK&E% zmkqmAu3?17+sx^JAMf7L(+-LrIRCHcvy5AHeOppej*Y%Ehp2LgdVCw799v$@>woeS zLiu_fFL7O4E`y0ghvKjS+94|cO3VeHepJG^_yTlk81`Skhh~PcIjL)4pa*P_Z1mHu z&{GmSJBM(H!a!@_+~7%M&n0P7eht@?HvvMNJg;Xo@v6`&Pk|E80sOm-;5et+RrliM?NRN5fuP#7lujkWRJk*8 zecaLZsP;dJ3xVHA1$WAg7R9xo`kNqOsz``Hi79rc)556RLq$;jo^h-ij(F8>(dN$h z<)U#YT)q+x-Z<75sDNh7pg8(pt7be&?(*>HidDo)mb%I8#pj^Z5Lyv&j)nSb%T`O* zEpkmFj?imBRmF>{<^93KZZ# z(gG#p2Z820g*T8(pB#-&7peY7IiE(ddR{#W1<^uyz7`45uW}@qw`s#%=!h}^ye0to z1Xnul(5>t1`R{*6G0*yJOQw=VL(}+kqab5qwZ5;T#a<04Dp$r&(Z2BS2t01|rK%$N>m0Kz**r9xW9iwP?Y{z(@ob&q~d&q6c#D&^Z&Men?wJ8Sg+o>`A&S@~4)ZS8Q z!&X*@V~U)#(J2kj5rc)8cfSqO#Vw0gl>Oa&LFhoW+CqU6JfoBtV%_AkzVUX4Dl4NP zcVAU7sJYFW=M`N$+984v*Xrq5w6i{TlA6$sK5v=bpVG{L4idTRF(^IBZE~xj{ri9y zvMPdRR|~8h^lYjbM|w+khfPGh7{V|qek+{eAufJX_scsInonAHzrPhJg@SDN)kd#u zj2i5ooD;1d8b+>%R)DANV1=X+2ST~ztdrDRcHznW4Uw}ipiN%_ZQZR39&z$yS2bB7 z)`8tq_Ggta6I_?`eSKtng~FHAG=yE>D6Y~|9d3=EOC*u`EMnh8S; zzdWi|r`=b9_oKW~T>`)zl<62}03aYtD?dNS74`|iQ`KBLARyHgAAA2QgHcytxoFYi zT>hhqudbZseMt)VY4i6|gMwK-&N-;0-l`W%6Wfv6E`w`^FftO})+dE#70qce)oRDQ zn9+`28Sk&QeOBdF{wn&v-ptkbCyf4&poln~q7$)b=a4bG40R8rGIYRvxl2ZIfy8eC z!*2prZy;rJ5M@=5Ya#KaJswQVAe{-`A2HSpHg1rJ1%$kNQyu9e%G9wGf35GaIDqq> z=v_$~bFk@dT-gn#6wP!6I_qrrvHJQ=7Lwb0(`YIal3Vco#64@fbidG3$ z?c-cp`rG>vCoHy&6RXgWm_jfFe4}WqP+XVUCSIJO;NJ8WakFTaN!8Ux2(=+*Urw>jU3O9NJ zcgV6zB55{k&n5chf72XDV>I)NhK2@x)Iy3*#&|JK)TFeazt&AtZ;~-UODID)c3$f7 zEA^>l8Ox(ezx542_`oND_+mN>E!_s2^)yNtg+$IQbz46iFHCx1)OjxBD}=c#kVC#? z3-T#xDgs%0BKv)?zb>|`P5QqL%+r_$4~Z*oj#n#fN*VgB40fZza8NkGFp)Z1t()Jw ztg6A~;sQ>Kn!Afv?=PF?D%nx0V+8E!5QwFgSkGEvhhg&%KkkJ@$K@);t zby2NuDSc*zCwa6+bLabP!o!0*;hNTkZFopRD$Ol6XPE{_kf@Mko9}MDNgvE346B@f*H>`EYufO>xldF6jZXx*X%~Q3 zO)QS3tfV;w1~tbIz$9LDN}RR%O25z1%tgAdE}?|GB3-33DWo58{IC3V78Y&-$d+3_1j*WaM{& zm-T1VXr8yFt;vu0f*QadtiUzm`Y$0u${P$55EKDrZcu+djOR$3_3b>7IMz%~&@y1t zunQYCjVF#iWWk5F7ck1PXmJ!~pHlt5DO*OVseF9%YIc5OZ~NW<0A*Mu@|6?YO9gLz7G8|YYkK@nJ&?kOq5a}-I?`>t zU}`XQA++p?F?+tUa7KSzuBjUsv;D9BT^@*8X_3D!GX z2T?;@kk6!nbe{gI48WwBFjs}ajPF`Tv^(YBQ|6_;PW;f@pS+lIAs#Lii*(X1m#-y1 zo|xF#60TwdaEx?-u~(IxMW3228V8G^{P#Y(x1Zs=kc#j zwC)|i4I`nZT9RLP)uCQRZ-QcJh|zmPheB!|`72f!T$hQbNUC^vN|ip&L9K%16POOc zz4BlQvmV6|-{RZ1EmllfOUuiYUQ(Q!a;giF8w7H-M71`DghvF0QhGy=L_>B}rr|Jk z%b*mu*OG0z;2saeoi{m7Pp1-!oS@pKUp)#R|NfWNoGUvETUk^IIGxe8g5l2L2M%4@ zfw$|eFZyG0%W!mXsw$>WA)eW+A+;a^5)hs}sE4NKrc73+^W$V4we8)wyX}}bgP?Lf zx~(tIY`{WV+Oc+n+`qSDY<9)HUP>D>cVgzIA7=71%(gt%->EyZi~+vw><92H{9*!w zQ8~{!7M3@uk9@OhV%Ab3&sf?g@orIcnPT0b#zh;SHAdCLK6hai$)P&Q-?98$nRP3Z z*rS^?5aN9;u+Cl^n?-U9_di~~WsK^$k`>iU42g7=mapm?pWPk{3SAu-7rhwc@%G6c z{dt-Eo-VIYT>_TL`NR(dq4CT%2DGLTHbXeR(u@X{!kv}Ow*{MWffy;vRP!P+S$Hbf z0$`@OE=u;15q9q5`jVi3v)XhnU0XC}T9cByYzExpfTsUWO44{u$$06}9&&TP?wkl% zzF5itLdsM!O0Tl_sr9kj21|3x9T-?tmc5rgSITlS)^>2xGc^{`5i$~tX=O>670;mw zv&KJ;(G$52k;DsY;|sVeF#)n#BWFFC&G=N5ByhtAnBhy1ORm@>mbxf_NKpLXM)!SN z+>L>Xe>W382zw-|z4}o3k%Y3aTQMPHnI$8`u58+?4dKde?`5ZRq}GqeeSt${M5Hea z3_u4=Bh)9FeeW8@T1h0BLWKcA&?fv+VhpNp0NL{icbmCFQ$F`tzq?y-zF`{9LpTVX z`0zpPecHBUj`0SWNHHA%hV$uu0&si(Cyg^O_L1Eqflz;UW&i0j!;WsGBKbz4pGt|`ELpaY{FZYa(&mFGWmugbe!}I?DPA%JB79(A zsmmFqOte@2p;X(Fs+6%@Tg-a!v^K>MgH}vvwcnC=YzzGg&a_jz{Jbv*@lyVywE;HV z^~0I#KK{%5($_b=#Z5du6(-HuSRs(rRr&wzAWUS2fAj}k*IyM7ZNxiiob|4)>I==a zw_i9Bx)@3>ZV|r~$gtD=tXn(~x);5wRQofMa+IKCElToe?eViRtg`2Ryrv`bihfgO zbQ-q1L%vjMc_wwxUq~8s3k;rnzyyII!h17qtw9UhVfV}M<;QV5A&SbzUYO=zl=+Co99^6~Ge@=kpr2EfU(Z8}1?YKe9_?C#%1ml}=jQ&dW zu_kwoX8fDff4g_wRLp~eSNQQ)*=YzUR5%-OZ!PcnTyZHCYe2e~f z9K7;6bY+3I<^K;?AD$_j*2zS`=GSUK3IPG@U{T2JzW<}>T>P1C|37|zzjp_RqD@W- zZA>v|k+WiBOv+@=v~_W*Yl}h0o&IdvNd1#IEVy#`T!4P<-+#3O_;rAuM!=WWF$QD!Asz8r3;q$ z@+4v&EJFd87f($FbxEl&^>uXk%Z!!CO zyQ2TcTBxNb%Zq-lxL#AN7!#Imtmy{y9oia$S|%9e zFJ$jwB{N>Xf%tS)hi5&^Qw`UE@E}4qX;hb%Nln}H0mfYixB!_Q(cg~p#taJ-duO$f(L-s3HPj zEYr?gz5v+Zd7P~PC-IG)>qH6DWD`cR@4RVt`>nB7x+QU$%+L#c;m-jB_VRw?Ayy2= zK}Ut4^CvrJNsF0WpBUG!|M-P{YJ%p0{f_trxQG@33_bw&PuK#qIRCg=ui183qk^+- zYew_aR>6sRmkSp(ZwsMNcdPVXTSqSL@y$;x9k!7Nq87){N+udY9;?ry)5zD2R&EN*;G(gNC9U z5?WoLUiX{s&?5~IFxI`E2VY1+@C_*V4^8lS0B#gdnr=v$@}7l@SwVIIQmPW7a>oy& zpkp7Nga!!*5XTdn&^v!OOUER-x)ikoI=tw~9`^j(djkIA<5K>YzK*`+0g7ZvY6Ahk z?4wQ<9|W$^{Hxv)UkWPc5&HWPPw&aU_~5X*#ISAf55A2{Yqo1O_j>M4paA|&&yDF! zB~Ah^X~M}!pv^4AVfE*?t0Rv@Y@8<6hi;Ih@5RDoBS&}DM(~OKxQtES&?W0lAhKai z^fA71UR*{e0QQ{*MIdAbC#ykF73+AJ)f$sks-Nn1Z5X6GeIu(V!MPT)SuSgj1;Nka zz2`YFSBTYDflT)^XP#f~&vK57yZHL5Dbo6~P$AX9pH~oC-4q*f{`K4FqDIo4?{GzY z-Yq4`0jP)htGg(&(Uok3MMsI?%E$@O@-jbrXIYVIU;Ag?N4JbLmB)zOeYF~N#st{TPHtterK#}>O$(91uu=wbEirE1cAb9zfw zcej>Y;hPeoQb=nl+c7Z(vA~Ol4=>yF4x%%fnwqTD6Rf9K&QcYjGme4oHPcBQb0Q5t zh~t&n8lrOMNeI{WwqlBwk-{_r`BsEdZ?=)TvCn7QMGjW;{I-ewV6>tpJ1ggMYT z@f|#^pTz9Yr_Hg~mL01iM8H}$yj-anCDC&!$4#_U5x|F5;GQ1?t5Aw?Kz16uwGQ4q)B%7EZYYZ4vW25mPyIU`HS`4*@6RBVN)ymocrHI5D~vpS+74M`8_iyuDV;T&slUFaoR;%r z>%Nj=VtTB;EWZNOQj!i1A)UqfuT9uhv~+Ix7q>`Di|S;uO}AM4d1~J?uudtx45z2i zSB9iUh%%Nzkhu*ItIEf|O8pf7D(UMP!_%c5?|(G+hvyrMP2Xw3nvaY&W9Mo`mf-%P!Q;B2 zBQBv&)|kseW9PmctjF+V@k+>FwvQ&y1ot!~b;BHYcfSoq2i2}2k=ewTlf4Rp6raxn z4-#P>%Yf{g5*jMJ{VTTqQ2(^&Lmw*`Da8H z8@SFPss#_mlvUbqi3H$zvYYSV9;@;C=k@hoh7i2gnGQ8rhDuDHhj8k{G(SWikOjT} z?_UY8>sAfq_mV6wTcQ5Z$f1i18Q;!gmWG%P`OMgx;j&X0km{y~p{h|F0gX%1?L#>p zuGT8$DvvHKZB_g7;D}tv2OR;%>P4@&PaP5mb8SJE!KujYImRa?+V(g6&++_vX?R+c z)2-ZQI zrq$~XekzR4I$Op3p&fQ$LQ4t%%enb|50mZHaifNyv`nHUbLiE(*$J66Qk$04+En9; zl#y0br)wWUPVhNezvE}5Ivnz7*ScL1&QEDFcBUG;R^ayTM=XTasRdZZ?a1CBXV)4v zmj>8t9;-7x1GDSw0Jp3~l8~OsquD>h;|N$j8ByC{EpR>KH`XQM7W?177EkF={+Nt3 zN}h5+$*+gp5CdGCNJ=Ck5{b&!k;vkAP-i0Z^v|la6LB1 zbqq6x&fE5~J-Jmp**UCXSPBAFp$LVm;3&n zK)ZnG4(hn2I>K)5^ei?Gsr{?^MAk8q^$!E_5qKCcp>hp4ro|;;wII*%d}@+S$v}6* z_cLDV`dR(jd)fb{AqzaR$%7te#nAjPI_$uB}8$ieoOS&fjIdFfNlquy%kW$)5*>carWQ^xco zaeD*;VOAd#Ha7g$BTN#m2JcBX7)C=<>lfqbQ%y3q(^RL(a)(D1TbmOq>xA`RH4hWy zP##4V=_XB#vq(+Ie!c^XYT_iQKmm^j;oQ`lcyo)ghIF?vMVBI(VNeE&7_^pontbHX z=-s7A_=$h$vvS&uD@uylAZ4r89Gt*wq}f|lieV3;(*VTnt#eib%Xp~zWOhG?noT;B z%&&l`1#eatRmeE;P#}}<-dULFGvD>H9`^{>KHdOm?dfDv)37C6IJuS44ZT`erlzLw zQrJKIo&~ht8Ug0a0oSOWN`b?gP)>Q|ZyT?zeXLh0@~H7jp5R=%rMX(r%~q6)-xO|= zQB_yG{Od&SHsAFD(q70xl#nf_VDuJXK-{mJqmOV zq*VKJJmr&`pVrCh)Q;TWOMrFk)${Ko2ZmKWrdbGk1H}qjoZrt zgMUCw?6~gqSRNE*H~+?cF#J7SPg)>Ad-=PHx(t+-*f{S;Fa*9WwA^V{xAa%KfEew8 zsKR;s0!#U47)PHiWf|%E3Kyn+$E%TR*IT3>{HJNb$Io(=bTXF2z(Rr2h3ARN&7UNH zpFw#UE^>6fh6LHpuz&v)TXu{D$k_qP$D9U-)%+DhD}7HEA&YP^!9u$`50Ze~P6;sX zykBG1)U>*1|K)9$Y!3_BTT|3umWm4^K_)f;<#YqODMlpMyF%_0vnz{LR|Hj-^yP$8 zkQXR$AszJwkd&=-8IATr&A-2w^sLHJoHr(>BKJ8B7L1c=f*NaXNC)LKY{rRa+(SNZ zqK~4Le%Cj%A%9jX=cHdSIx3wUo_eVWWD)**`lb~^F(AC|e|cvZfM*xUbgrDAbKK2X z%eY(0dfI5_$_bzCY#+RU7nL>_1~fuRA770sd1(n43qBt->*X1%op+JFT(HODuYaZe*rv@XACnvG^~a-lwLCbY&x++s7=7*4H7bRowE;*)F>(T zEGU(K^6tF0(Q(fkmEd7w$d-uR++dOOW9xffa^l)K>Jl$sQ3%hj?K#K!SP0Wnp-a}G z=W1GG%_esIpI_ckksP1*`$LR8EvFG@bq9TOU>(WzS0gOSSaUJ8yip=K?%R28e{`#P z^SY95oGWf+4O1Y)VZbugTVq-<4Aq(gDG=+!uO++1Q_K}B;vU9c8&}Twrg&q>BEYqh zmtWECT4WK|Vx+7xd^j`ZXjaQl`W9FBnV<-Qr_woM;K3;qo@j!YEa3cspQ~#%UYH`B z93He>Lyfk?Cqhjz0eOfovPlh=VIY^7pmRqN?+&L7o+OWKeihI7lyxP6US+lygTI@N z%LKA?kWHZfLu>eDBXLrFDl6gZ!Ie-usDQ2-!qMpm0J=)Rnggk<#!!$GV{%Gbu_*iN z>S9VJ?Vs1Pn8OEZxl#!~zVUR#2Urc8$XJ`&Jha8)k*9Rd6PXg#odOdGdB|7&d=!ulRX=|aTF$RD&(JsR4f^7u zL^(qAdesW9iACe%jYDSiq%U}O#+5t7;-es7WkAsT^RSZID7phJh84a#AJcp>(l+zZ zj@s>`#}w-#oGr&QKuGizP*9^_Rqc*M5SkG z;}1lzwZ5`43iGQG6XEuX>3ukO%fiCOZY8us!2Mj#+zGqjTTLkw#{8@6SVN>!sb$gtgYKxX4;5FwQ zq}zW%4_`}=-YJ~H^F$>Wn@7h)5@e}KL!h#Z-_DgzVH0~s{OjLJ zTKs!Nl>>HtE|QK0FU4Pa;taZfg^oYwI}}m)F>G1&{2kBdH=bMSUaa?g$HEu$6}CL_sUR?z z%QBsWZm8S}N_i*c-X4)bAp3^5;hrkG!=<@+|FWqCylv#tTz?K#Je2simi5SU`GBN= zTg1G7Fi|?HI4Yt8p$LyUmz^{#RD4)j^5$N#z|TB^A1-(z)IQs+zL7Uax~%CiqB8d3 z#bA+3gI{3#H!M@hgIIq-_EwXF3L6~EkRjH#{pCQ9;oMP#m%1n zp$aVxKMxbak7&C6qWNpp>R(kX-I9+)lBhW&Qu=0I{(f@+CPc;JryN@6Sscd)UGn3L zL|?Z9%3p-vK#jdXXEzWS9j{BJwkySbn&2@C1~)TS_jkI~Yd$>xbaIYa6#dWZG#ugR zvFEAzPv3sOo}-RzJ=Ca%nGp3PCsp58VA?LA`rh4$52x0c95mb&G`X-1Cc}%8+98|(MLm@fM+#un-m5)3?K9o zHSaq}HgUgkcPgYX4FIuj!q!GFj@R~g!ARy=mixY#69M0%?o^n}x>lsOC;zo>_Z$Gj z%VN5rA}~+)3tMF*o}<8x!}|ZdWr6?w>kC#>nh60NM)5cPva_&;kqi4%kXm}O+xE4I zY$CgFmI=Pw&v~h?A=a`@rn~*tRhKyb%`A_uj;+sb8+1nK2l_{D9W+ONEk+9WIwfIb zb-vY}n@%umO2+NQ8@;$a#9mJGeSp=gtwqK9 zW~&$GwztQSay#mR-XR`u3JSCH^}Jx)+5U%UgveG+)JfmQo{u{hGynZ-A&shgO2Axw zIk1=nJBJUoOic54TbTS*IamJNFf8?0ZJmM5If z@rg|tTE^~9-6Cb2OX&;J_e_a8;UMY_mx6hy*sXoAr-{9rJTs7}3{UJ{QPN1#k00C} zN3~CK*()O$hfAhjA~)pmcPDKOFZ2hPwRAfrxW2+3&tj;Qo69??&Y&~}uWV}J`@VCv zOnsVNMWVitnX`jn|f&< z+>hbw#dU%1&C7O4viWv5g4e2YvWkY^@#DRQy7_w3@zC3?0cKlbP%;>@Y+EZ@np4Ry zv-#$z%br9$8>(6!IinVkr7rVM3gP5s&BU6xFU=o@3uu5uJhqAz!kcRPuF!{ItmHYS zSxDnG1(_dxZIx@1l4ruE@6^ySI4_~(&vgEm=YdQ%6t=xl@#j(oK>ygu11oTq5fl>; zN6r+^(_}^p9Ct=~Y;ZS}JYGJpznPi}e+I=~waf1%LbgA6_T8martGr+e7B2yZqgrq zERK{Bl#!P*eOGinRUR&kYB%waGU)D>IG09qf%GqX41`~30k81&z8I;2{Xit+GB08| zvvZ>^(78X7f&OumDI<(Cvoil3?$qKFrUAj`cq3Hg>_F0$wbEK4Z{O z>&}gjD!4vHWa6rXB3Uno7R7)2_qdLJ=3AC0G>a~r<#Xf8s=FXWnBMDtfl}rNn=4~D z_9l2g3^TPWDg3$KTiat>Jj4MC;jQ+=SmpWQ&9%e&oO?5jQ~E~oXLC7zfj=fEmC=ft z4f!ri*D64y-Qbl>B!c{Vda?;tH{h_r>nxC5XiZfyyQy8DFkfnaJRVu&Q7tc)`}(Od zo?l@+=4`W5>jc{t$$!tNFI>v0R2{MT;;2!IE+R|L0Vz_oj&C+hjU6UaE@YcV-HtDT z%cn7aornp2=mVokh{40A4HqF0@S;oa8rR9c(J;LHaa0xtkuu1MT*`;SB@~kvC{d8= zpKHEp&(xp{Gn*oLPG^MI6Nftq7VSNo4H0>=yF!J8zPz!W#1DgEJVn&vAQ=c&u!yn- zodY){e!e$9CPN0>%N^_V&)T$-*bkl-SSI)VK4X?rKBA#hw?s zwJJqfN%IT|-ygqt6~y{U#MfyA+uFy`U6CIbctO1OjQ+-YhaJ1L`uYdI;pDshVG99U z=3u{f-3n2yG_mm|JBPkOQWrAa_8nZ6{NIo zANwHF$kVk-EXT=O6}wO&Mb|1@B_52excc@`?$AF&s4Y1)D7!3;ba_78ng_ z|KLX*@*C~%VqTal%S(PGc<1UpRh0YxYIoRdfbk^ga>tOH@hBE5#?w6?5j|Gd0gs zf9GAY!*C=*FJxrQWy}`AJfxfn8FW{)w>vR+8X{tla65Nx3*>GFmZUElk~enetOrwA z{LcjC36ZEL-o9a_Qn?_D+??|l z3zI_?Vg2IZUQbK|GQk+>RyynWo~*wb@dtgX@Ksl6o}!`g8NOE+q zGI&uxETWssZYc(mc;hnJ;aR2Z6$mPy43>vK?UECP3Qyz6$ic~FV-r?*XW7<);wuZl zwLYlMFKUOf%%?B`0-h7h!#=I)h(^7Y9jA9qq*_pKs|+LOJzR%HK*^grgd~)92}?y4L0ZkTmwip?U_b7Q83)k^pqZW#$!J8fG~=7 zgGxs(oUNRdsXQ@2E*0eLZ}&AJp^N=stg`D2&z2Jp0zJ1TrE4|1>P*$)A2y2%LlHUz zfIbL#X_h`yc8IE+|G6sVCj6|+i>!9|t=faOWv8IWcfF2XQ~84xBe?UhH6BSZv1C}W zOE>p_un@VHivTPxmwS;GY_V<$X+R{8z1eQR(+<4pNn(m1M-1YNYCIHqF{!-=Q?vUg z@Bt|pt28P$Trs?&S_F7sbdi%`PoG863awF#%mQh zrg6(bm;;Dc^#0Zoo9N3vS@KtMy0I$KCR9QP7e*m+iPruQ`+{ zyk`km_~Q7?_L5AqxA>S)*-q>N=phOb-!sU0-(T61qlJpn%{01#vTyS}*8(yFDRnuC zXo-aV3Ic^rR2snOJ~vjIz@hCZrCWaSo6gkJfoe5(muP9-u$;SOl>eHzK&MKBYt1Rt$MFd7ZTZUsR2UMmHQyAmgC13Pg zFC(+8Q79~TajD-qM!%BPh)*!GwV0gJ8;a<(SghGmug=@s6Q*g`d$uKn>$VjI79r4U z?jV7b-Y*bt&4;j)xf!`WPHfBEBlsM&_AJt~9dj?Lh|tt<3VPRlcCf6KYbSM;`RlZ`)qn{p?QTY`82xTd&}r<0z$tb%55>AHVV#Rr}@xo|$(C?Go88mg=X+d777aeW414gs&^J8fUyZB0rHlLLy$F99fzcD2njf2hKB0ILHFk(j@(?fM8smbi$oPR^Hax1SYXui$ zr2m6c)>IVE+@p6(8Da48)dp{KVMURo>Dv$ZV!}AlwIF8R$`S~EZw9ElwWpx z)vEnjAS|7*%eeJ2WyJFu4#5~0a#u@L!F3ol;$sWGQX<0l9nJunj?(K>0bAT~P?yN=6YT4Hz71v*UKTOiL$S%&8 z6nS%#l)~)Xm*0I;^q+U)$(U`URS+HBfzry1K+emt!e@EH%!S+cP7)k676oR6PM9t1 zP6x6nkyN3e)PdrRs*)(Dh5yQTD#6P>zk^s}#RX;_CO*dR#{m+Z3WEBQpvI-i(C*+A zCRsICSuC|ti4GQ?`xV#Xx$B#}^?upn+U+jZvYIsnWf?1Eq3?TgKN13I46KkfXn7?7 z5qniY?kMZ#E_qt;Q&u67J;urd25mWxTcOA=3?89Z(?HWk3?nk1kSaG4@{Ct3-3 z;lQH!+tkrR0h#o_7ft)4`Pw`!vkbw>4?D$uX*qh&`i7v(t{V?nyhFFL?Uyp$1=9i< z2zX;j$7^h}>9y=QD>-FOXj}=*JXx5_FcnbuAIEi%A{7jr4*0<^< ztmQ0*f){#lzMgGVo*!`{ze&&wv)9ucJQ_MKhdQO})y*sml@eOKdwHLk)hBBxgxMb)@LZ0c z`~0}UH(P|dQG>slOp2Vt3r0!Ct!-AVX{^a>{P%K#AaC*KPM)<}PbY_Gr_K5p2bCUD zn;Q``zwIVId1-5l*&7(A7ICs}wdqI6#Oa$)1F$S;qw?nFLRIs7w&qQEz^e2`rIoUk zkq6qz$$48x`mE-=h5~X>)p1h}%At`Nz2`T!>xo~jdh=4@krO2ASz1QtDZTjR_aHft zXc)`EEs(G_;Ys~7raoi7#xtF3-}(2Cxv<4Jufe-pHTbh;t%nh}`i2Kp;N&5XWB31Q zPkP!eEx3nd2WT$K>Ib@h;!gR7kp~8}nLoAA>%oO|Ox&`*>x16Q3kx=aryC!9fo>T| zZ>aqG_pif<=Q~8(d#5$Y;ucAKAXN2kw3(gC44{5KI{oioRdvo&>8>U1%khGD%W|HA z+!h6oOn4{C&;4;%i3rf0pw;1(2?Q7|^5cVMeuM5>w_lB;F~S<`{uH>J;DZ5z%8CnZd+zpt%j(;{zW>$cItXq5?NPz)^;jZ3 ztbo=+x&7G$%Zy_R#T?}$VsipvacU{2VK0=H!g*vpl6XO)HxnkBnb8GtSGGm@?>G@l z8*lWygwWeMG*z6#MP_bYeCow-P-N0%c|6-9FK9u2p9$%_K!@{Tma{O@HxcNx`p+dw zRi66II&jc-5s*fIe|v7eY@6q3Pm7OrtOYW;O$m6V_KX^F@wk@1G6_rmSeb(a7b z-Z}D&HS|~HZ_SNNO#u_TI++2>q&^{9W*;@Tc8_liE2^*!ZiGN5dn91@H~W94U(H=T z^P4LUtvk(?=T~}P@@b+R;0tGj)Ja^>(_;FVd#suN#Gk{TZ5H;^Zzv`6hw=0+{m}7% z6>iS>-W^8w5_~>QutNZ-uIs$|YS~avarAMJidvepdj&>q585nia(n~s*r03+z)0VF z%9{5L_w}$n>^E}GYh}W>;6K>xjf_2>y{P+ADW-l}XFPu088Y|QuU1U8s0FH&&@vp3 z>VFv9@LWRC$$A{v;VKSl#*(l9R{P!=MOAB23?1wS=bQa&9O%qxy zfaB79ZYI^cazoPh-t}AgETl6iefZ6FTvKi~{casDg902CjOh@CZ3%zbw+gEVy@LEi zAHzU91;=}4&I!Mb+OYG*ESiV%N0|~EXpH&Oev$CdKUPJ#1koVi_8MeAozfG8bbEog z!En8!)BRn!7k}=1*Y+k@dG0LGULIMZjs(0{XwHoe+CE5F+= z2eGux5A+9OSxWvdbFb|1Kk$K=xvM2$Az(R0!UUj5Ds8+jiA(yLv6wS>if_#Ot!l5l z$U{Gq=FMu6C_nAsq&=OHFhWLSO@euTj_Ye?OQrm~6KC_}(cAXZ8PI_zVt>wtOw zRBYX{B7?lvRRJW{Tf;snzcz5V0c(zxPyxvWnSB%iM&cFUFy(?1w?yxD^}*Lsw$fgI_@u@GyewG_hm=qOv;1&nLnPQ=cQ} zzvrwe+E;NHyZyN1PkUG&99{4`$giJOsdX|HwkIlgmT>r3xtwq4HGR2q@$SQ?K?Xq* zIx5@i014715VJ`G)|`fViNjkJZ;O&ebJNHfmK<3$lyH&an2m%Qw~7MhZ?~MUOfz(j z^%me790Ebl{de(V@@4t3&T=zXQ2`G-hY@JKVPnb?3ng{@6QBlv>zi6kh-G zy*C2df-{XW$-pZ{ep$Mwh%oK#V=|{7-)t`~kTWVjtLNLDT24wC@(dfnSohbbOe%E- z2M0^KojmZaeWuQDcOH>55V7xn(1}BG445*9;qG2qc^Hz!L+YI8=@3N1Bd14IP?_VQ zpL|j#kny2s&cWzZ{7txyn#OImXOsD}U?x1S0LGqp`$gmiRZK%QrT|vD*L90&E(n!^ zV&%d%?f<;eUA_I$2D)WG=y1orW7I)(5WcKmIlnd@nl9Fy@E%AJEp~Ct3v9=v1la{{QJ-bTvMoQj{1`eOcHcc!#6=xgWG{v2<7|olAs^KFL!y zDH@NeRC{#Cf|HQbne2v|qEyaRVns_+WW_26tggiJgT;*X<{QAkegN)7I!D=F`)nXH z)^u=2EM6n|nST)Ya|(+xkFnnaI!>^;3aaHTt5g!%MRep_hAcwej@uvVJ=aw05VpDG zK})6tC5&hZ{%34oos^TJnP2^^W0hQ_5q#7#M~vDh+$^+us{Oj1@v(&j?)Abby1oTT zgdLd8|MI`rSf*gy1OuH!BQIw5c`a|v7p&(|2K0Z(Iaa-2j;!GNo&Mh z7~O9Q7C!+s=b2k+RCzIah2^*e%~0JPyvZ=nSnK1NA^_%VgO6_k*85e}!Xls4;;Ql) z02&;!d2ZUYQ;p}iy#;vMf9#a_c$HXoaWzajp#{s!cs9BMdyE$DaIz09^9=ujQGF?5 zW_^A^sds~WiACVpf@wH(8dcAe*^tBkV7pGOW(*F=x-&qK;Q6j3!>XJ$MmVEa0SvCL zTjs!!pk~&^Bu$S6kaHtzjwmxWzy?8nJ&uNL@2-`e{?E9iftpd|(EmI~-_mW8`)WO# z*XnpI3g`Uq5LQ0KP`_YJM7-2z1fD;o`>=UD2gA&t!Z17kZ9Pl1mEKm$A@rSW=ACZf zo(lIK0#VDgS9pq_xf&zTwSrNVttN|V_LQFOfB!mgy>87+gerp|HRFwnvIgxvE_R=} zhh-%(1*_qf>C42-D`WZ{v#i)evP@OatlP@0uLL|7^c*%-L1!WeYg0r2>cnJ2z2o)

?jumqng6$5wCe@9DZ74j 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π*^7p)xMbKpvpW`q6$KG{sCE^KhXzPTx* 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 X;b4uwhkh)gfNH>n?50VV`8)N0(<*v* literal 0 HcmV?d00001 diff --git a/backend/static/uploads/d35f86a2-08b5-47d6-bcfd-c59c8ccee275.jpg b/backend/static/uploads/d35f86a2-08b5-47d6-bcfd-c59c8ccee275.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08da47969545b1d09eebdb4036cc92ef0a31ad36 GIT binary patch literal 92340 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ΜHVV0twN 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.json()); } +// Fetch tickets from backend +async function fetchTickets(){ + const res = await fetch(`${BACKEND_BASE}/api/tickets`); + if(!res.ok) throw new Error('Failed to fetch tickets'); + const data = await res.json(); + return data; +} + // Normalize API data to expected format function normalizeReportData(report) { - // If it's already in the expected format (from demo data), return as is + // Already normalized demo format (has location.lat) if (report.location && report.location.lat !== undefined) { - return report; + return { + id: report.id || report.ticket_id || report.ticketId, + category: report.category || 'other', + severity: report.severity || 'low', + status: report.status || 'submitted', + notes: report.notes || report.description || '', + location: report.location, + createdAt: report.createdAt || report.created_at, + updatedAt: report.updatedAt || report.updated_at, + userId: report.userId || report.user_id, + userName: report.userName || report.user_name || null, + address: report.address || null, + image_url: report.image_url || report.imagePath || report.image_path || null + }; } - // Convert API format to expected format + // Convert backend API format to the app format return { - id: report.ticket_id, + id: report.id || report.ticket_id || report.ticketId, category: report.category || 'other', severity: report.severity || 'low', status: report.status || 'submitted', - notes: report.description || '', + notes: report.description || report.notes || '', location: { - lat: report.latitude, - lng: report.longitude + lat: (report.latitude !== undefined ? report.latitude : (report.lat !== undefined ? report.lat : null)), + lng: (report.longitude !== undefined ? report.longitude : (report.lng !== undefined ? report.lng : null)) }, - createdAt: report.created_at, - updatedAt: report.updated_at, - // Add missing fields with defaults - userId: report.user_id, - imagePath: report.image_path + createdAt: report.created_at || report.createdAt, + updatedAt: report.updated_at || report.updatedAt, + userId: report.user_id || report.userId, + userName: report.user_name || report.userName || null, + address: report.address || null, + image_url: report.image_url || report.image_path || report.imagePath || null }; } @@ -86,31 +109,62 @@ function App(){ const [heatEnabled,setHeatEnabled] = useState(false); + // simple toast container for non-blocking errors / retry actions + const toastContainerRef = useRef(null); + useEffect(()=> { + const c = document.createElement('div'); + c.style.position = 'fixed'; + c.style.right = '12px'; + c.style.bottom = '12px'; + c.style.zIndex = 9999; + toastContainerRef.current = c; + document.body.appendChild(c); + return ()=> { if(c.parentNode) c.parentNode.removeChild(c); }; + }, []); + + const showToast = (msg, actionLabel, action) => { + const c = toastContainerRef.current; + if(!c) { console.warn(msg); return; } + const el = document.createElement('div'); + el.style.background = '#111'; + el.style.color = '#fff'; + el.style.padding = '8px 12px'; + el.style.marginTop = '8px'; + el.style.borderRadius = '6px'; + el.style.boxShadow = '0 2px 6px rgba(0,0,0,0.3)'; + el.style.display = 'flex'; + el.style.alignItems = 'center'; + el.textContent = msg; + if(actionLabel && action){ + const btn = document.createElement('button'); + btn.textContent = actionLabel; + btn.style.marginLeft = '12px'; + btn.style.background = 'transparent'; + btn.style.color = '#4FC3F7'; + btn.style.border = 'none'; + btn.style.cursor = 'pointer'; + btn.onclick = ()=> { action(); if(el.parentNode) el.parentNode.removeChild(el); }; + el.appendChild(btn); + } + c.appendChild(el); + setTimeout(()=> { if(el.parentNode) el.parentNode.removeChild(el); }, 8000); + }; + + const PLACEHOLDER_SRC = 'data:image/svg+xml;utf8,' + encodeURIComponent('No image'); + useEffect(()=>{ - // Try to fetch from backend API first, fallback to demo data - fetch('http://127.0.0.1:8000/api/tickets') - .then(r => r.ok ? r.json() : Promise.reject('API not available')) + setLoading(true); + fetchTickets() .then(data => { - console.log('Loaded data from API:', data.length, 'reports'); - const normalizedData = data.map(normalizeReportData); + console.log('Loaded data from backend:', (Array.isArray(data) ? data.length : 0), 'reports'); + const normalizedData = (data || []).map(normalizeReportData); setRawData(normalizedData); setLoading(false); }) .catch(err => { - console.log('API not available, using demo data:', err); - return fetchJSON('./data/demo-reports.json'); - }) - .then(data => { - if (data) { - console.log('Loaded demo data:', data.length, 'reports'); - // Demo data is already in the correct format, but normalize just in case - const normalizedData = data.map(normalizeReportData); - setRawData(normalizedData); - } - setLoading(false); - }) - .catch(err => { - console.error('Error loading data:', err); + console.warn('Failed to load tickets from backend:', err); + showToast('Failed to load tickets from backend.'); + setRawData([]); setLoading(false); }); },[]); @@ -254,65 +308,54 @@ function App(){ }); },[filtered]); - const cycleStatus = async (reportId)=>{ - try { - // Find the current report to get its status - const currentReport = rawData.find(r => r.id === reportId); - if (!currentReport) return; + const availableStatuses = useMemo(()=>{ + const s = new Set(STATUSES); + rawData.forEach(r=>{ if(r && r.status) s.add(r.status); }); + return Array.from(s); + }, [rawData]); - const idx = STATUSES.indexOf(currentReport.status); - const nextStatus = STATUSES[(idx + 1) % STATUSES.length]; - - // Try to update via API first - const success = await fetch(`http://127.0.0.1:8000/api/tickets/${reportId}?new_status=${encodeURIComponent(nextStatus)}`, { - method: 'PATCH' - }).then(r => r.ok); - - if (success) { - // If API update successful, refresh data from API - const response = await fetch('http://127.0.0.1:8000/api/tickets'); - if (response.ok) { - const data = await response.json(); - const normalizedData = data.map(normalizeReportData); - setRawData(normalizedData); - - // Update selected item - const updatedReport = normalizedData.find(r => r.id === reportId); - setSelected(updatedReport || null); - } +const updateTicketStatus = async (reportId, newStatus) => { + try { + const res = await fetch(`${BACKEND_BASE}/api/tickets/${reportId}/status`, { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ status: newStatus }) + }); + if (res.ok) { + // Prefer using returned updated ticket if provided + let updated = null; + try { updated = await res.json(); } catch(e){ updated = null; } + if (updated) { + const normalized = normalizeReportData(updated); + setRawData(prev => prev.map(r => r.id === reportId ? normalized : r)); + if (selected && selected.id === reportId) setSelected(normalized); } else { - console.error('Failed to update status via API'); - // Fallback to local update - setRawData(prev=>{ - const out = prev.map(r=>{ - if(r.id !== reportId) return r; - return {...r, status: nextStatus, updatedAt: new Date().toISOString() }; - }); - if(selected && selected.id === reportId){ - const newSel = out.find(r=>r.id === reportId); - setSelected(newSel || null); - } - return out; - }); + // No body returned - update local state + setRawData(prev=> prev.map(r=> r.id === reportId ? {...r, status: newStatus, updatedAt: new Date().toISOString()} : r)); + if(selected && selected.id === reportId) setSelected(prev => ({...prev, status: newStatus, updatedAt: new Date().toISOString()})); } - } catch (error) { - console.error('Error updating status:', error); - // Fallback to local update - setRawData(prev=>{ - const out = prev.map(r=>{ - if(r.id !== reportId) return r; - const idx = STATUSES.indexOf(r.status); - const ni = (idx + 1) % STATUSES.length; - return {...r, status: STATUSES[ni], updatedAt: new Date().toISOString() }; - }); - if(selected && selected.id === reportId){ - const newSel = out.find(r=>r.id === reportId); - setSelected(newSel || null); - } - return out; - }); + showToast('Status updated'); + return true; + } else { + const text = await res.text().catch(()=> ''); + console.warn('Status update failed', text); + showToast('Failed to update status', 'Retry', ()=> updateTicketStatus(reportId, newStatus)); + return false; } - }; + } catch (err) { + console.error('Error updating status:', err); + showToast('Failed to update status', 'Retry', ()=> updateTicketStatus(reportId, newStatus)); + return false; + } +}; + +const cycleStatus = async (reportId) => { + const currentReport = rawData.find(r => r.id === reportId); + if (!currentReport) return; + const idx = availableStatuses.indexOf(currentReport.status); + const nextStatus = availableStatuses[(idx + 1) % availableStatuses.length] || STATUSES[(STATUSES.indexOf(currentReport.status) + 1) % STATUSES.length]; + await updateTicketStatus(reportId, nextStatus); +}; const openInMaps = (r)=>{ const lat = r.location.lat; @@ -428,7 +471,11 @@ function App(){

{sortedQueue.map(r=>(
-
{t(`category.${r.category}`) || r.category}
+
+ {(r.image_url || r.imagePath) ? ( + {r.category}{ e.currentTarget.style.display='none'; }} /> + ) : (t(`category.${r.category}`) || r.category)} +
{dayjs(r.createdAt).fromNow()}
-
+
+
@@ -472,7 +522,11 @@ function App(){
-
{/* placeholder */}{t(`category.${selected.category}`) || selected.category}
+
+ {(selected.image_url || selected.imagePath) ? ( + {selected.category}{ e.currentTarget.style.display='none'; }} /> + ) : (t(`category.${selected.category}`) || selected.category)} +

{t(`category.${selected.category}`) || selected.category}

@@ -486,14 +540,16 @@ function App(){

{t('drawer.details') || 'Details'}

{selected.notes ?

{selected.notes}

:

{t('drawer.noNotes') || 'No additional notes'}

} +

{t('label.submittedBy') || 'Submitted by'}: {selected.userName || (t('label.guest') || 'Guest')}

+

{t('label.place') || 'Place'}: {selected.address ? selected.address : `${selected.location.lat.toFixed(5)}, ${selected.location.lng.toFixed(5)}`}

{t('label.location') || 'Location'}: {selected.location.lat.toFixed(5)}, {selected.location.lng.toFixed(5)}

{t('label.createdAt') || 'Created'}: {dayjs(selected.createdAt).format('YYYY-MM-DD HH:mm')}

- + diff --git a/dashboard/i18n/en.json b/dashboard/i18n/en.json index 85e7da1..76c917d 100644 --- a/dashboard/i18n/en.json +++ b/dashboard/i18n/en.json @@ -9,6 +9,7 @@ "btn.apply": "Apply", "btn.reset": "Reset", "btn.view": "View", + "btn.viewDetails": "View details", "label.language": "Language", "label.location": "Location", "label.createdAt": "Created At", diff --git a/dashboard/i18n/ms.json b/dashboard/i18n/ms.json index 3e521d8..7956726 100644 --- a/dashboard/i18n/ms.json +++ b/dashboard/i18n/ms.json @@ -9,6 +9,7 @@ "btn.apply": "Terapkan", "btn.reset": "Tetapkan Semula", "btn.view": "Lihat", + "btn.viewDetails": "Lihat butiran", "label.language": "Bahasa", "label.location": "Lokasi", "label.createdAt": "Dicipta Pada", diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/lib/models/report.dart b/lib/models/report.dart index 923c753..b834691 100644 --- a/lib/models/report.dart +++ b/lib/models/report.dart @@ -21,6 +21,9 @@ class Report { /// Base64 encoded photo for web platform final String? base64Photo; + /// Remote image URL provided by backend (absolute URL) + final String? imageUrl; + /// Geographic location where the issue was reported final LocationData location; @@ -38,6 +41,8 @@ class Report { /// Address or location description (placeholder for future use) final String? address; + /// Name of the user who submitted the report (API reports) + final String? submittedBy; /// Source of the photo ("camera" or "gallery") final String source; @@ -61,12 +66,14 @@ class Report { required this.status, this.photoPath, this.base64Photo, + this.imageUrl, required this.location, required this.createdAt, required this.updatedAt, required this.deviceId, this.notes, this.address, + this.submittedBy, required this.source, this.editable = true, this.deletable = true, @@ -89,6 +96,8 @@ class Report { String? photoPath, String? base64Photo, String? notes, + String? submittedBy, + String? address, required String source, required String deviceId, required AISuggestion aiSuggestion, @@ -106,6 +115,8 @@ class Report { updatedAt: now, deviceId: deviceId, notes: notes, + address: address, + submittedBy: submittedBy, source: source, aiSuggestion: aiSuggestion, ); @@ -118,6 +129,7 @@ class Report { Status? status, String? photoPath, String? base64Photo, + String? imageUrl, LocationData? location, String? updatedAt, String? notes, @@ -133,6 +145,7 @@ class Report { status: status ?? this.status, photoPath: photoPath ?? this.photoPath, base64Photo: base64Photo ?? this.base64Photo, + imageUrl: imageUrl ?? this.imageUrl, location: location ?? this.location, createdAt: createdAt, updatedAt: updatedAt ?? this.updatedAt, @@ -156,6 +169,7 @@ class Report { 'status': status.key, 'photoPath': photoPath, 'base64Photo': base64Photo, + 'imageUrl': imageUrl, 'location': { 'lat': location.lat, 'lng': location.lng, @@ -166,6 +180,7 @@ class Report { 'deviceId': deviceId, 'notes': notes, 'address': address, + 'submittedBy': submittedBy, 'source': source, 'editable': editable, 'deletable': deletable, @@ -187,6 +202,7 @@ class Report { status: (json['status'] as String).toStatus() ?? Status.submitted, photoPath: json['photoPath'] as String?, base64Photo: json['base64Photo'] as String?, + imageUrl: json['imageUrl'] as String?, location: LocationData( lat: (json['location']['lat'] as num).toDouble(), lng: (json['location']['lng'] as num).toDouble(), @@ -199,6 +215,7 @@ class Report { deviceId: json['deviceId'] as String, notes: json['notes'] as String?, address: json['address'] as String?, + submittedBy: json['submittedBy'] as String?, source: json['source'] as String, editable: json['editable'] as bool? ?? true, deletable: json['deletable'] as bool? ?? true, diff --git a/lib/screens/map/map_screen.dart b/lib/screens/map/map_screen.dart index fc5a5a4..d139eab 100644 --- a/lib/screens/map/map_screen.dart +++ b/lib/screens/map/map_screen.dart @@ -12,7 +12,7 @@ import '../../l10n/i18n.dart'; import '../../models/enums.dart'; import '../../models/report.dart'; import '../../services/location_service.dart'; -import '../../services/storage.dart'; +import '../../services/api_service.dart'; import '../../widgets/severity_badge.dart'; import '../../widgets/status_badge.dart'; import '../my_reports/my_reports_screen.dart'; @@ -59,7 +59,7 @@ class _MapScreenState extends State { Future _refresh() async { setState(() => _loading = true); - final reports = await StorageService.getReports(); + final reports = await ApiService.fetchTickets(); setState(() { _allReports = reports; _loading = false; @@ -325,6 +325,17 @@ class _MapScreenState extends State { child: Icon(Icons.photo, color: Colors.grey.shade600), ); + // Prefer backend-provided image URL when available + if (r.imageUrl != null && r.imageUrl!.isNotEmpty) { + return Image.network( + r.imageUrl!, + width: 120, + height: 90, + fit: BoxFit.cover, + errorBuilder: (_, __, ___) => placeholder, + ); + } + if (kIsWeb) { if (r.base64Photo != null && r.base64Photo!.isNotEmpty) { try { @@ -776,7 +787,17 @@ class MapReportDetails extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (kIsWeb && report.base64Photo != null) + if (report.imageUrl != null) + Image.network( + report.imageUrl!, + errorBuilder: (_, __, ___) => Container( + height: 180, + color: Colors.grey.shade200, + alignment: Alignment.center, + child: const Icon(Icons.photo, size: 64), + ), + ) + else if (kIsWeb && report.base64Photo != null) Image.memory(base64Decode(report.base64Photo!)) else if (!kIsWeb && report.photoPath != null) Image.file(File(report.photoPath!)) diff --git a/lib/screens/my_reports/my_reports_screen.dart b/lib/screens/my_reports/my_reports_screen.dart index c458c71..a003ba0 100644 --- a/lib/screens/my_reports/my_reports_screen.dart +++ b/lib/screens/my_reports/my_reports_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import '../../services/storage.dart'; +import '../../services/api_service.dart'; import '../../models/report.dart'; import '../../widgets/report_card.dart'; import '../map/map_screen.dart'; @@ -23,14 +24,46 @@ class _MyReportsScreenState extends State { } Future _loadReports() async { - setState(() { - _loading = true; - }); - final reports = await StorageService.getReports(); - setState(() { - _reports = reports.reversed.toList(); // newest first - _loading = false; - }); + setState(() => _loading = true); + + try { + // Try to fetch tickets from API and filter by this device's user id + final userId = await ApiService.getUserId(); + final apiReports = await ApiService.fetchTickets(); + + // Keep only reports that belong to this device/user + final myApiReports = apiReports.where((r) => r.deviceId == userId).toList(); + + // Also include any local reports stored that belong to this device + final localReports = await StorageService.getReports(); + final myLocalReports = localReports.where((r) => r.deviceId == userId).toList(); + + // Merge by id, prefer API version when available + final Map merged = {}; + for (final r in myApiReports) merged[r.id] = r; + for (final r in myLocalReports) { + if (!merged.containsKey(r.id)) merged[r.id] = r; + } + + final combined = merged.values.toList(); + + setState(() { + if (combined.isNotEmpty) { + _reports = combined.reversed.toList(); // newest first + } else { + // Fallback: show local reports if no API-backed reports found for this user + _reports = localReports.reversed.toList(); + } + _loading = false; + }); + } catch (e) { + // Conservative fallback to local storage + final reports = await StorageService.getReports(); + setState(() { + _reports = reports.reversed.toList(); + _loading = false; + }); + } } void _onViewReport(Report r) { diff --git a/lib/screens/report_flow/capture_screen.dart b/lib/screens/report_flow/capture_screen.dart index 2a8cffd..e7fb713 100644 --- a/lib/screens/report_flow/capture_screen.dart +++ b/lib/screens/report_flow/capture_screen.dart @@ -54,25 +54,35 @@ class _CaptureScreenState extends State { Future _processImage(XFile image, ImageSource source) async { try { - // Get current position (Geolocator.Position) + // Get current position (optional - app can work without location) final position = await LocationService.getCurrentPosition(); - if (position == null) { + // Create location data even if position is null (with default values) + LocationData? locationData; + if (position != null) { + locationData = LocationService.positionToLocationData(position); + print('Location acquired: ${locationData.lat}, ${locationData.lng}'); + } else { + // Create a fallback location with zero coordinates + // This allows the app to continue working without location + locationData = LocationData(lat: 0.0, lng: 0.0, accuracy: null); + print( + 'Using fallback location (0.0, 0.0) - location services unavailable', + ); + + // Show a non-blocking warning to the user if (mounted) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: const Text( - 'Unable to get location. Please try again.', + const SnackBar( + content: Text( + 'Location unavailable. Report will be created without GPS coordinates.', ), // TODO: Move to i18n + duration: Duration(seconds: 3), ), ); } - return; } - // Convert Position -> LocationData (app model) - final locationData = LocationService.positionToLocationData(position); - // Generate AI suggestion (seeded deterministic) final aiSuggestion = MockAIService.generateSuggestion( id: DateTime.now().millisecondsSinceEpoch.toString(), @@ -113,10 +123,12 @@ class _CaptureScreenState extends State { ); } } catch (e) { + print('Critical error in image processing: $e'); if (mounted) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(I18n.t('error.imageProcessing', {'0': e.toString()})), + backgroundColor: Colors.red, ), ); } diff --git a/lib/services/api_service.dart b/lib/services/api_service.dart index 1915220..5af0d77 100644 --- a/lib/services/api_service.dart +++ b/lib/services/api_service.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:uuid/uuid.dart'; import '../models/report.dart'; import '../models/enums.dart'; @@ -8,14 +9,24 @@ import '../models/enums.dart'; class ApiService { // Configure this to match your backend URL // Use localhost for web/desktop, network IP for mobile/emulator - static const String _baseUrl = 'http://192.168.100.59:8000/api'; - static const String _uploadsUrl = 'http://192.168.100.59:8000/static/uploads'; + static const String BASE_URL = 'http://192.168.100.59:8000'; + static const String _baseUrl = '$BASE_URL/api'; + static const String _uploadsUrl = '$BASE_URL/static/uploads'; - // Create a user ID for this device if not exists + // Create a user ID for this device if not exists (persisted) static Future _getOrCreateUserId() async { - // For now, generate a UUID for this device - // In a real app, this would be stored securely - return const Uuid().v4(); + try { + final prefs = await SharedPreferences.getInstance(); + const key = 'fixmate_user_id'; + final existing = prefs.getString(key); + if (existing != null && existing.isNotEmpty) return existing; + final newId = Uuid().v4(); + await prefs.setString(key, newId); + return newId; + } catch (e) { + // If SharedPreferences fails for any reason, fallback to an in-memory UUID + return Uuid().v4(); + } } /// Create a new user @@ -42,6 +53,9 @@ class ApiService { } } + /// Get or create the current device / user id used when submitting reports + static Future getUserId() => _getOrCreateUserId(); + /// Submit a report to the backend static Future submitReport({ required double latitude, @@ -49,6 +63,8 @@ class ApiService { required String description, required List imageBytes, required String imageName, + String? userName, + String? address, }) async { try { final userId = await _getOrCreateUserId(); @@ -61,6 +77,8 @@ class ApiService { request.fields['latitude'] = latitude.toString(); request.fields['longitude'] = longitude.toString(); request.fields['description'] = description; + if (userName != null && userName.isNotEmpty) request.fields['user_name'] = userName; + if (address != null && address.isNotEmpty) request.fields['address'] = address; // Add the image file request.files.add( @@ -101,6 +119,9 @@ class ApiService { } } + /// Preferred API name for fetching tickets (alias for getReports) + static Future> fetchTickets() => getReports(); + /// Get a single ticket by ID static Future getReportById(String ticketId) async { try { @@ -132,6 +153,24 @@ class ApiService { } } + /// Delete a ticket by ID + static Future deleteTicket(String ticketId) async { + try { + final response = await http.delete( + Uri.parse('$_baseUrl/tickets/$ticketId'), + ); + if (response.statusCode == 200 || response.statusCode == 204) { + return true; + } else { + print('Failed to delete ticket: ${response.statusCode} ${response.body}'); + return false; + } + } catch (e) { + print('Error deleting ticket: $e'); + return false; + } + } + /// Get analytics data static Future> getAnalytics() async { try { @@ -150,22 +189,30 @@ class ApiService { /// Convert API ticket response to Report model static Report _convertApiTicketToReport(Map data) { + final id = (data['id'] ?? data['ticket_id'] ?? '').toString(); + final imageUrl = (data['image_url'] as String?) ?? + (data['image_path'] != null + ? '$_uploadsUrl/${(data['image_path'] as String).split('/').last}' + : null); + return Report( - id: data['ticket_id'] ?? '', + id: id, category: _normalizeCategory(data['category'] ?? ''), severity: _normalizeSeverity(data['severity'] ?? 'N/A'), status: _normalizeStatus(data['status'] ?? 'New'), - photoPath: data['image_path'] != null - ? '$_uploadsUrl/${data['image_path'].split('/').last}' - : null, + // For API-provided tickets prefer imageUrl; photoPath is for local files + photoPath: null, + imageUrl: imageUrl, location: LocationData( lat: (data['latitude'] as num?)?.toDouble() ?? 0.0, lng: (data['longitude'] as num?)?.toDouble() ?? 0.0, ), - createdAt: data['created_at'] ?? DateTime.now().toIso8601String(), - updatedAt: data['updated_at'] ?? DateTime.now().toIso8601String(), - deviceId: 'api-${data['ticket_id'] ?? ''}', + createdAt: (data['created_at'] ?? data['createdAt'] ?? DateTime.now().toIso8601String()) as String, + updatedAt: (data['updated_at'] ?? data['updatedAt'] ?? DateTime.now().toIso8601String()) as String, + deviceId: data['user_id'] != null ? data['user_id'].toString() : 'api-$id', notes: data['description'] as String?, + address: data['address'] as String?, + submittedBy: data['user_name'] as String?, source: 'api', aiSuggestion: AISuggestion( category: _normalizeCategory(data['category'] ?? ''), diff --git a/lib/services/location_service.dart b/lib/services/location_service.dart index 142df45..e87fc98 100644 --- a/lib/services/location_service.dart +++ b/lib/services/location_service.dart @@ -9,6 +9,13 @@ class LocationService { return await Geolocator.isLocationServiceEnabled(); } catch (e) { print('Error checking location service: $e'); + // Handle specific Android exceptions that can cause crashes + if (e.toString().contains('DeadSystemException') || + e.toString().contains('DeadSystemRuntimeException') || + e.toString().contains('SecurityException')) { + print('System-level location service error detected, returning false'); + return false; + } return false; } } @@ -19,6 +26,13 @@ class LocationService { return await Geolocator.checkPermission(); } catch (e) { print('Error checking location permission: $e'); + // Handle specific Android exceptions that can cause crashes + if (e.toString().contains('DeadSystemException') || + e.toString().contains('DeadSystemRuntimeException') || + e.toString().contains('SecurityException')) { + print('System-level permission error detected, returning denied'); + return LocationPermission.denied; + } return LocationPermission.denied; } } @@ -29,6 +43,15 @@ class LocationService { return await Geolocator.requestPermission(); } catch (e) { print('Error requesting location permission: $e'); + // Handle specific Android exceptions that can cause crashes + if (e.toString().contains('DeadSystemException') || + e.toString().contains('DeadSystemRuntimeException') || + e.toString().contains('SecurityException')) { + print( + 'System-level permission request error detected, returning denied', + ); + return LocationPermission.denied; + } return LocationPermission.denied; } } @@ -58,17 +81,46 @@ class LocationService { return null; } - // Get current position - return await Geolocator.getCurrentPosition( - desiredAccuracy: LocationAccuracy.high, - timeLimit: const Duration(seconds: 30), - ); + // Get current position with multiple fallback strategies + return await _getPositionWithFallback(); } catch (e) { print('Error getting current position: $e'); return null; } } + /// Get position with fallback strategies to avoid crashes + static Future _getPositionWithFallback() async { + try { + // Try high accuracy first with a reasonable timeout + return await Geolocator.getCurrentPosition( + desiredAccuracy: LocationAccuracy.high, + timeLimit: const Duration(seconds: 15), + ); + } catch (e) { + print('High accuracy failed, trying medium accuracy: $e'); + try { + // Fallback to medium accuracy + return await Geolocator.getCurrentPosition( + desiredAccuracy: LocationAccuracy.medium, + timeLimit: const Duration(seconds: 10), + ); + } catch (e2) { + print('Medium accuracy failed, trying low accuracy: $e2'); + try { + // Final fallback to low accuracy + return await Geolocator.getCurrentPosition( + desiredAccuracy: LocationAccuracy.low, + timeLimit: const Duration(seconds: 5), + ); + } catch (e3) { + print('All accuracy levels failed: $e3'); + return null; + } + } + } + } + /// Get current position with best available accuracy static Future getBestAvailablePosition() async { try { @@ -181,7 +233,10 @@ class LocationService { } /// Get address from coordinates (placeholder - would need geocoding service) - static Future getAddressFromCoordinates(double lat, double lng) async { + static Future getAddressFromCoordinates( + double lat, + double lng, + ) async { // This is a placeholder implementation // In a real app, you would use a geocoding service like Google Maps API // or OpenStreetMap Nominatim API @@ -198,4 +253,4 @@ class LocationService { acc != null && acc >= 0; } -} \ No newline at end of file +} diff --git a/lib/services/storage.dart b/lib/services/storage.dart index 9dcb738..eea6c15 100644 --- a/lib/services/storage.dart +++ b/lib/services/storage.dart @@ -57,6 +57,8 @@ class StorageService { description: report.notes ?? '', imageBytes: imageBytes, imageName: '${report.id}.jpg', + userName: report.submittedBy, + address: report.address, ); return true; } @@ -85,32 +87,38 @@ class StorageService { /// Delete a report from storage (API first, fallback to local) static Future deleteReport(String reportId) async { try { - // Try API first (note: API doesn't have delete endpoint, so this will always fallback) - final apiReport = await ApiService.getReportById(reportId); - if (apiReport != null) { - // For now, the API doesn't have a delete endpoint, so we can't delete from API - // This would need to be added to the backend - print('API delete not available, keeping local copy'); + // Try API delete first + final apiDeleted = await ApiService.deleteTicket(reportId); + if (apiDeleted) { + // Clean up local copies if any + try { + final reports = await getReports(); + final updatedReports = reports.where((r) => r.id != reportId).toList(); + if (!kIsWeb) { + await _deletePhotoFile(reportId); + } + await _saveReportsList(updatedReports); + } catch (e) { + print('Error cleaning local copies after API delete: $e'); + } + return true; } } catch (e) { - print('API not available: $e'); + print('API delete failed or API not available: $e'); } - // Fallback to local storage + // Fallback to local storage deletion try { final reports = await getReports(); final updatedReports = reports.where((r) => r.id != reportId).toList(); - // Delete photo file if it exists - if (kIsWeb) { - // On web, base64 is stored in memory, no file to delete - } else { + if (!kIsWeb) { await _deletePhotoFile(reportId); } return await _saveReportsList(updatedReports); } catch (e) { - print('Error deleting report: $e'); + print('Error deleting report locally: $e'); return false; } } diff --git a/lib/widgets/report_card.dart b/lib/widgets/report_card.dart index 5af4b53..ff66362 100644 --- a/lib/widgets/report_card.dart +++ b/lib/widgets/report_card.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import '../models/report.dart'; import '../models/enums.dart' as enums; import '../services/storage.dart'; +import '../services/api_service.dart'; import '../l10n/i18n.dart'; class ReportCard extends StatelessWidget { @@ -22,6 +23,30 @@ class ReportCard extends StatelessWidget { }); Widget _buildThumbnail() { + final placeholder = Container( + width: 72, + height: 72, + decoration: BoxDecoration( + color: Colors.grey.shade200, + borderRadius: BorderRadius.circular(8), + ), + child: Icon(Icons.image, color: Colors.grey.shade600), + ); + + // Prefer backend-provided image URL when available + if (report.imageUrl != null && report.imageUrl!.isNotEmpty) { + return ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + report.imageUrl!, + width: 72, + height: 72, + fit: BoxFit.cover, + errorBuilder: (_, __, ___) => placeholder, + ), + ); + } + if (kIsWeb && report.base64Photo != null) { try { final bytes = base64Decode(report.base64Photo!); @@ -32,21 +57,15 @@ class ReportCard extends StatelessWidget { } catch (_) {} } else if (report.photoPath != null) { final file = File(report.photoPath!); - return ClipRRect( - borderRadius: BorderRadius.circular(8), - child: Image.file(file, width: 72, height: 72, fit: BoxFit.cover), - ); + if (file.existsSync()) { + return ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.file(file, width: 72, height: 72, fit: BoxFit.cover), + ); + } } - return Container( - width: 72, - height: 72, - decoration: BoxDecoration( - color: Colors.grey.shade200, - borderRadius: BorderRadius.circular(8), - ), - child: Icon(Icons.image, color: Colors.grey.shade600), - ); + return placeholder; } String _formatTime(String iso) { @@ -78,7 +97,19 @@ class ReportCard extends StatelessWidget { ); if (ok == true) { - final success = await StorageService.deleteReport(report.id); + bool success = false; + try { + success = await ApiService.deleteTicket(report.id); + } catch (e) { + print('Error deleting via API: $e'); + success = false; + } + + // Fallback to local delete if API delete fails + if (!success) { + success = await StorageService.deleteReport(report.id); + } + if (success) { if (onDeleted != null) { onDeleted!(); @@ -88,6 +119,12 @@ class ReportCard extends StatelessWidget { SnackBar(content: Text(I18n.t('toast.reportDeleted'))), ); } + } else { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(I18n.t('error.saving', {'0': 'Failed to delete report'}))), + ); + } } } } @@ -236,7 +273,24 @@ class ReportCard extends StatelessWidget { ), ], ), - const SizedBox(height: 12), + const SizedBox(height: 8), + // Submitted by (if available) + if (report.submittedBy != null) ...[ + Row( + children: [ + Icon(Icons.person, size: 14, color: cs.onSurface.withOpacity(0.6)), + const SizedBox(width: 6), + Expanded( + child: Text( + 'Submitted by ${report.submittedBy}', + style: TextStyle(fontSize: 12, color: cs.onSurface.withOpacity(0.7)), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + const SizedBox(height: 8), + ], // Status indicators Row( children: [ @@ -343,7 +397,9 @@ class ReportCard extends StatelessWidget { const SizedBox(width: 4), Expanded( child: Text( - '${report.location.lat.toStringAsFixed(4)}, ${report.location.lng.toStringAsFixed(4)}', + report.address != null && report.address!.isNotEmpty + ? report.address! + : '${report.location.lat.toStringAsFixed(4)}, ${report.location.lng.toStringAsFixed(4)}', style: TextStyle( fontSize: 12, color: cs.onSurface.withOpacity(0.6), @@ -374,40 +430,36 @@ class ReportCard extends StatelessWidget { } }, itemBuilder: (_) => [ - const PopupMenuItem( + PopupMenuItem( value: 0, child: Row( children: [ - Icon(Icons.visibility), - SizedBox(width: 8), - Text( - 'View Details', - ), // TODO: Move to i18n but need to handle dynamic text in popup menu + const Icon(Icons.visibility), + const SizedBox(width: 8), + Text(I18n.t('btn.viewDetails')), ], ), ), - const PopupMenuItem( + PopupMenuItem( value: 1, child: Row( children: [ - Icon(Icons.update), - SizedBox(width: 8), - Text( - 'Update Status', - ), // TODO: Move to i18n but need to handle dynamic text in popup menu + const Icon(Icons.update), + const SizedBox(width: 8), + Text(I18n.t('report.updateStatus')), ], ), ), - const PopupMenuItem( + PopupMenuItem( value: 2, child: Row( children: [ - Icon(Icons.delete, color: Colors.red), - SizedBox(width: 8), + const Icon(Icons.delete, color: Colors.red), + const SizedBox(width: 8), Text( - 'Delete', - style: TextStyle(color: Colors.red), - ), // TODO: Move to i18n but need to handle dynamic text in popup menu + I18n.t('report.delete'), + style: const TextStyle(color: Colors.red), + ), ], ), ), diff --git a/pubspec.lock b/pubspec.lock index 8765b19..870c9e6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -217,10 +217,10 @@ packages: dependency: "direct main" description: name: geolocator - sha256: "149876cc5207a0f5daf4fdd3bfcf0a0f27258b3fe95108fa084f527ad0568f1b" + sha256: "6cb9fb6e5928b58b9a84bdf85012d757fd07aab8215c5205337021c4999bad27" url: "https://pub.dev" source: hosted - version: "12.0.0" + version: "11.1.0" geolocator_android: dependency: transitive description: @@ -249,10 +249,10 @@ packages: dependency: transitive description: name: geolocator_web - sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172 + sha256: "49d8f846ebeb5e2b6641fe477a7e97e5dd73f03cbfef3fd5c42177b7300fb0ed" url: "https://pub.dev" source: hosted - version: "4.1.3" + version: "3.0.0" geolocator_windows: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index cce09e9..8dd2636 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,7 +36,7 @@ dependencies: flutter_map: ^8.2.2 flutter_map_marker_cluster: ^8.2.2 latlong2: ^0.9.1 - geolocator: ^12.0.0 + geolocator: ^11.0.0 image_picker: ^1.1.2 path_provider: ^2.1.4 shared_preferences: ^2.3.2