From 6db69c8c940d28235832adac38b84ba444671ca8 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 2 Sep 2025 07:32:42 +0000 Subject: [PATCH 1/2] Saved your changes before starting work Replit-Commit-Author: Agent Replit-Commit-Session-Id: f2b9c241-9fdd-4abd-9041-720afc8b27d6 Replit-Commit-Checkpoint-Type: full_checkpoint --- ...-4E99-B5E3-8903682D9525}_1756798302271.png | Bin 0 -> 52073 bytes ...kup_automatic_2025-09-02T02-46-17-030Z.sql | 2970 +++++++++++++++++ 2 files changed, 2970 insertions(+) create mode 100644 attached_assets/{DEB338F1-2260-4E99-B5E3-8903682D9525}_1756798302271.png create mode 100644 backups/backup_automatic_2025-09-02T02-46-17-030Z.sql diff --git a/attached_assets/{DEB338F1-2260-4E99-B5E3-8903682D9525}_1756798302271.png b/attached_assets/{DEB338F1-2260-4E99-B5E3-8903682D9525}_1756798302271.png new file mode 100644 index 0000000000000000000000000000000000000000..5bf6e7c8a4664ac215e275ed7add5fa83be952f5 GIT binary patch literal 52073 zcmd3t1yEegyXF%hL4#}1!QI{6-Q9z`J0T2C(BSTF!9BRUySux?4*BkXYwz8=TD4VM zHB)n@=S-h7-P7Ig?|I%1k(U+w0`nE-!-o%FB*cXkKYRd7{P5x9AE?iulFtyBqo9|M zj*4P}AIe8@4nS`pOa){FK76Q(gnc&n1bPo`C$8c6;RAfv`}1R;ZK3gp4}-4~!UD=} zy2meHyi{hAZX@-+hms2;($D{bkc47P{U9=K%KYctM7ebSPlg_}v;_W^{GUGF+QVSQ zSaM0Rva~9&Z_))F5pvQrQU?pd`v(#bCrUyPBg+fuz8>j%mU++ea?m{y zlSRcY>+xyb>ONVY)ZPs=jykVdp1{NUz8t~o8-^}F(PmEF$Q9*<4TaC8cOM*aWjT(O zC`;&bx*QYaN8I1NA{55Rm-d0bnCSo11XHZE8_KZPi_x?q4T@j;L0#J2%Q3>Pf1@bf zfI#l%iuYJdh_Ct*?Tbn$t1MC$KyVWwnL-aYMGbGO@niDP*!Y|U_)?XQtKR&q$U(#$?Cj;Y{2mrJDg5!&H0pPt6LbJLW5jf4F$)A7bVYFT?|R<|TV zG|i%0^LW38vO7r#(H~P#^($X(&`v!LdE23EK`~IU_0?I38`}O`0@pIn(8t&vL&}<- z5NAA3jg$6Xz5W0~UfeE}Lxn2_T>l6)2v1js1LK#%WeUL}-pdxJQMJ&@U9{p9M8(a= z!Uz}KmW)h*ITSZfb57l0!>oSyoiH0tO;2I{A;G2xvk-E!wPfs;PgII!DbrcN_fs^T zSYJmEJvt$OQy81mESS!TW{l0R#qtzOXH3efb2(aaLpR~y)b$x<*1__19ARx5Ha+W_ zj)}T=P%ij7)b?aI4w{ftIb9bu=OEzAsDxE|nZuQa{#dkx#!ar2u3i$~a!ctA5@(iH z)=={`Aor^pMz=Lo8?a|n%o=o7K6GGT98M!lUqlq2+asTP&T-m0491eXmZBKCjb`jP z2n1?h1B68u4>fLYca&hGO@bR(!dwlqwCjAuJy2A_V56Hz zVmM3t9K)1OT*`PGmK(%6&fDbzr;c1Ry!ucK%}QJVXdgM@}0D^300UM#Uf z!`^atI|(YPz+k^|O;xKKXotbZ>>A|EN3LAd^@>Xa>Ma(pqv9JGD_N5yz*m{_qxW~hFB&$-IYNpTHB71+LZ#(rYY7sm8FnaSaj z#bNta$wy>g&7Myp7=k;mw}jB8Vutxe5H2$Di(I|`IbJ&!R{E(KyNUHtS+UsW7elTw z0{gNI_8v{^B)R1U!H9BmR*&PF!8>^M}Uv?>{hMf7Wc^Z_$v&tT$K~CVZ+5QCFNb z7TfFKM>tNI+_s`h(k%U5l%IUu8dy$8DRh1TSi7yz-Lu3w^Fk9GjR zVc3-ZDr=E@-3ZX|TD?>6BT$=c`z*jF^?h*sX)T%XC(z7Qo2tT`_%rc+s)R%)V&foE znFOIg8oU()j^>#3+N~fpE7ZnH={PS(7_qv4%};52yKTu({Eu3P8xjaOCiQh{H#y_4 zlr+f$A8EmX_w|a%gic9X6rer{ZX|g1EZ6{Vxt;Odz-aXarXHEDHy|cVHgdm}Y0JHd zbS}WN`f+jzb9>$MbcGiMkCa~`2^lI6=%XU=#xvYKYQnFm8xOr z1D50ScOyf5B2z_~S9o=8!FExbqG68dCtyDhw?_-F7iO~HfxT+toYtodPb?VZ5q9z( zx)ANdZDdwy+7O*4hl@n<$dZC$xm#E97&`5-)sXYdoT zh_Ym!mL2blErAeU&b@h`!W9Y#)A0An9j*+!=X&wtt@n*fH$txM1x^m1_JSi}ciK>0 zcGhxn0ZFesOj2Zlf5*5?*OG%Pn|o;NB!|v>bNmuZ-MHd+L_N9k{K6>gm&hFWA0uy< z5XIc!DP*ZifdGwB`NVm58P8j-o7Lyc1#CSefz}m+kQT5VOiQp?fH^@R6w*!V!5<3h zzKf(@cR!SZMyLhIa(^I@H19KJ1j7U}N1{#IaAxlPvW{;87b2r~cYl%dHU`^3qp9KN zgZu+TMviZskXKLQNbLqVxH{70eRg4pUU$RYcH=GZM$JIMHj@S|s6smD{#81J>DXml z7W@PQzRy_Yx_0EgjDFf&G!7KP-ka)XNMu)Nk(-5@-O)Mh6J;14MIzY9XTX1&(li3MOR|2F@&*RT>vi6J zg#A)qahA#r&^1xl8_gK*6!b)cj*r6>1gPHZoa__FFeAV+c>zRQWrG;2CH+`_(+(=2 z5ElH|LIKlQC41?7MKaV?YF80wDK}rHONUTy#rWcZtfbsXEZ&*|!C`#J{+L|D4x<|+ z;TC;qa^sC0i+hS@O{~MEatezS=6$JDWmam7-@FPqT!*5Xx;pRAbM1_U%$x6A%KoaN zdlV#3bQ^*XM(YD4#&*v?7VRZ(G8!nxWuK@7&tpED^UForMkF<>KSP0|cc6a?PXikZ z;eQDIRWIS5po%%?h_GW+ZU?CJqFq)5$a)Lys%P0)t~~8;T+9e;Vi8Bsl@l$9loRsC zZ(QKD&JYTe=iGBxIlCZ140fQN&`&7YHmCpgk^H0aV~pH(SDr6oizX|AOLV>+I*|f8 zVxtI1kBd@}4&F+8*d?dq<%Tnixvd!C?=H7tbiX@zHooI&zdxSkPiYPJ({G_l3G%r; z8de#)s|J^JjYag8i|NX=A5}?S9B~LT%ihMZ4e{SCYhMR&y9{sjiZ=@Xf*a#tCagUCr#q6?SPoEUl z%lE27T7I8TL_6)}51-+U?Zl~f#qz2~MwK~4ZyjB^86%z?1lE;T+moj$!;x4wbYimZ z*}gS_x{5?fx?%8DPqn#oc_1i+w2sIVwaZ9ao7I6wLtFHV3%ya4)PX)DoY5C0R8?)! zPb|YzL&w~VaE=!Skg*1syM&X!Hz#rE(|b*BzBqQ%!=X@B{xQZ3G*?ltz?(^P({%Xb z7HE(d|Kk&B7d;&4fuaJ6H{K7r=oJF~)50K%PyyN=dXYWex7uVQ%s|jZ3>_%~$*e}{ zMX2eG5b@rx`(9^YUkB()@5h>7sOho(9wiobg8ls%GcbfQ)gQ}Wdk|-MZzy7mu8&S= z4^Iaa<(D5Xf1K<6_{N+aOZom~Ow#yu9O>QcD$ln$c3*V%H=X^1r3$+Bp{_Zz@k$Vw-p5w3{CZghp&7%o@*^SV-rL#i zfo9|ltW-A?x}K&7P>aa~QRJ$;*sXu%KY==b%{|;U<(3prO3Fe|5&KD5s}L=#*OC8f8Pg`PbCVvJBkO{wb|2(6>(Vst^6W)hL};&0G8 z89I=A9u&jiGh@CPQWWSaIxzKK`7qB%G^AS~jL0NwuM1WHbrO=}#`7m9$!UOFRNBIUg(6(QvOrAuuorT zdt70fq(n7zDlzkiQ%MIbZW0M4_ENqFNDTzQ9K@)-?)KzI+p#SK{IuR2t@fU~W|u$x zN1VadqeDd$*R9^@F;uQulC&B&vqK+sunMjY>~P@{DBc0%+VzyY#k46;wL$L8)Vg4> zm)Ea&kSuCf9b=J(agGFQ6fKUg(u;z0-?1ZS$HuQ>D z;{@eZcbsSXiTzB$33`@yQfFr8)tP?oTZL-C4@BA1T}bbfgZ5PgNRCFk65O$nD_saH zu3B$Zib_(g3IxY=yCP zOZ2?a#Q|ozd}MOu0j3jomrk{gGNo&%d~qZKpdE#G4(cK(Xmn_)8H7LH)efu{ta9OCy327))hq{~it zg+nF@vL1UD4yZ z!&bW1IFH6Q(%tKd`+mvbkIlK=TVB9fkHs<8wO@m8oO+GsG?Oo7F|PujI1tlIr8Ks0 zP|kU$Sjn3TPhqb}2bX+n7dHENuj-W_bpoFU7!$Hme_1jsvVC!P?ks5P&r6Am050Ce*`W~HsGuR& zRo8Qa<9O5dOn*NyEWx(B-WPI7vqJn1)p&Hch~xCqFUB| zEmVnj26`2gtUF5hp_~w{I#tA=vydOtqM!Ge?V=HMSSz^C7ZT*33pOwK9)I>D z-xzh+o#5Cw^gkK%AZT27bzV?Im|iWFFziJ43Nl}}p08Z>K7AeQ>NZa_Y(DJBH0^h4 zH{thE0cL$YQdNVg^37QkgF4(@Tl@~Rft*TWJ*+f9n>F5E_(6+&e9N33lphT=jzlaq zddY#ns5q&VTlTyXt0>vaI_P%q)!fj(7KpTQ5QR#RlTWc@0!dEau!k-#p%c)~SqoK= z0sXyTT0Ko=;;v8_Vyk*gS7=YmQPegAct@Dql8bW$`zFxxSRQX$O1aU9ClQuAEI+%y zLu4>fK%){SlyAaJ6GvytLe^ozmzn0$fW{{qWSFeH-z1h-)U~n zb0OiYwU$aA70i6&&_}jEBzzQn)}nw$Y8oy>MNgDAj%wg`{a7HU_b2}F%MVwIBaVmVy7gSl(^M9nW3SZ_1Q>?YtZaxu4J)MF`Ds2<8rQ{<+6d1Miv;|3 z>k$2n@s?}rIZk>9(wXhE?>!{fmfP`zsY0!C!OLAaeMenESrotUOat6o1>KiUzmbbG zZ)Kvk6Fbz;5_%RLSH7rh0*C1L7+%mwm zRVb`cBSXf?tv5n-)^EowY$)&Cx28J-T~7u;8Fot*ei(}d}&U3jY|Z}Afjq7bC6jtS#?7kg8V4j{MyoIsjxMo>S*#$VtRk;GslsA@CaphpANY}#t zm}57^!UQ}yyQ%6;HDIKUMdc95M0rlQj!IHrYmViza8$$r0Xxi!k3rbUm(s~&@{>zl zUKy}rX=)pNqVOh#E>JK5@iTj4>76e0OkHnI(i{lU+Xn2k&7acDiKG%E+q-bc?L;lcK$?;>8l50~h84Py8g@LhU0+n@j* zB(mS&>^s|B@@R29lV*T;t!=<`(U!Mo;3{pLqdd&bgR^k5cbqa=H^uVxMn6&APxvRI z@&;$1He8{9$g$ZL>GEn5Kta;I*2R>`-Flj%6s?A7%1fL*A!H3n0qbxNnZI?j(tlxQ5%Tz7tW@?HJ@FrEl2!(B|6i2q5=H|} z8NfuLKp=jK9Ktt2rFnq#Um!9^d5@ufe8yZgYEL5Z8k@~LJ2ZL!B!2{iMGE@2X1T*ZfWm4WeD~D)nWO&UtT0ICvzuB?n!K4 z&+gy@ZcfiiMcq?p)aw`T4ms}n{<2+u?H{mMbJi66R6iChD(k+9JD)T8@#c2(r?@}f z#KbaLNk0O#eg&&cg`vz){%sXa9#9lt7{x7KH27sqc%NNUu$mwT8SSZb=kJ6h60r6c z1w%MM3^QT^5-6@)_3lp$;31VmN{kV=s+Qk_x-KDR}S^MtWb0j#uu~yxcBfv^}RjIGrsZ zscGAP)ZqeGLN4!g-U{0KiOa%%b7NlXY%I<&dxqYkT?V5K()@MZ^!+u*mFaqb!6G^! z52h@Ez1=pslKV$!4aMx1pO0gu22DUv9oy3AN}E&rk}Wn@)?T7-Fg?-+P3PpCYhi%d zC01P&L?xkeOAX>+p@0ITl0%jMJr(?D-bFDdy}Ix8&5GFv7q zBH%-*tK(WEECz#a!x4JuKU-rj8$)T!>Am-iHFGv9q*uG_k`xLyV>9!>uPO{yOSAs$ zw}~p^`sGY?1?9|5dB;^Zrof`j z<7*mvh_~+sY$_Ms$vU)K!r>+u+FSp20ES&&?#|ur;-$|qqgUo>*GiortJ#jF?mr_) z%sJO+vT3BA`1@-`K#@NPZMhcqE>OPxZuN4mOtqlU!;96=Z=mqI7UO!R>!RWGjnY0Y)GXF z?p@SrbG2sEzQ3fZolcZp^ZMC+RIVa*$^jx!q0>|dVwqk!`QS>@-R_;sp%w!0#F&cI zYX2by*)q``6gTH_NQ;yi_3go#qVDV}-i=MWACe%Qo@mznc#CADOOU}9mI4s2OO+Oi zFPHlO5=;+kb|i?0oPBUu%^mpQuKq(_!Vk@;lA`kbq?blK&|W}tFSehG`;nDM-uk*_$oSXRGxbJt;lY!?#cBe*Z(}K5vhs>%kHkE`Gvc=bP&wB z)RPoLFjr)hM^lb!?UAF2q0t2G$bc0>v8^hD9m1|+sCdK^x-mH-DJFRGB-sFsR9_4e zvZ#TxBxfTPHU3Z-m_qH!z;mRhQm@-#Hmb}fjaJB4b zvKA`k7dQdhBRi&uitI}kevj?DLYDVMGI&7AwqwSVS4B#;jmr_9=k~bkgs)8_t|6dv zi~o>6S+4U$Y2umQ9b{?B15URE1Oplfg@d(m&I~AU()zGn3joBdrJc#)=BM4VqIjoD zK?U?p+;eR@g^YI@>|c~9MUph(R3Y^m3*YFx45NfS;}93kC4-~x=_Pc}6FJpj6jxXk zfDIMkE3PErDgKBr*gdVD3bjg(WVWMdLU$P-V z`uZWyEJJ@>O@+Yt2y!Ol^=o~;I1ykGcW%(~Ysg1vUQ{G2A3u1h&R@p$F=79g4jL7n-BK&urw|jI zUz-WSr?Z+sgjgvyRW6_)H!Q$B?g5DpB1AKl4ei7R2DiE6Cse|m5*;wdnI}(|fumdb{^|^gG*`v6Ka*$scGNsywINh1X4b#+LkL*v zaSOFeVjJjip^7wpo!GCL^K^RS2HR=pUpsG^Hp3ISGAVM0V z>pLNCQ)8;Xl{(08W6B?n`iY|od*L+NCK(e zv)tI}cl(u~$eA!b2%Z_mW6&5kN3NG`LwdX4^me;gkZw6&mVUl;y(2ssRcOe!RJ-1v zMN@NaM6P%l(y};`mv>uUYfJ{>A1#ZIYwziv~L(?+|-0cSDsI^oFt#C7ju4CG+F*f3p!;4y z(>bHHd4viQA<+k&Tf3$^66nMY^k}k&ul5L>JCqyCfH;39v2Lrjw~KvfLT*|fFTH3K zxC0zQU!o|${eT7FZ(CU63{Md0u=e-^&?cH3|BYdWZ_^KOfI_KRx`Y0V$&u*YE9 zoarSpxRl!>MHPP37<9>?)_|zai(ylQSYUKaUx{{DH`^MCho^^244PT*H#uW;wkbD_ zu<*_%v}lmGIYTonR827iGI69Q;8A#P>W(Om3LsLAFbTw3Qv$c#qzbnpkZx_kOe6)( zof#Qx&QUv^q*FcMuQ}Ns(#ulcv#>1J+?b@LqdeC>IW@gf)J`|e-_B-K-F=}OP3H-# z7)$LC3V2g1Gf3PO;_0uhoJ_!%64ZS@S2uGx4@HhW`%3hdmh`}697@4FebI|Cm>*%P zy1%L+`|!K&o;B;J0ihQm6!B@m5}i+b8|F$I*oeP_T75O3E&LbR{Qd*7v5Nr)NISup zKAVq##k%>v=$)(FB;0pY8WTraSbR?~09z+3*Hjda{^LYOoAcpI&-HCh*e{|XdWAqB zNn_RioYma9p%5*}j-+O{?u*t}^u&|!Sz3Cmd>VfD1R4t3fuA=w#RaKD@mMw?Ap9z- z{9|SMZ!vv-o_WNdZCT!bp~Anzy8rV+5I-12$#3cFvO8)@uWfcNoPmtTcTSWx;?#EG z;MBIyOXMs;CgX-DC2Bk$p-6pe^6Me_dxim^mB8759AP5xlL@w8>d;j|yMoj|cW_GZ z!p}*V47zP1dG%!))AquygHWCO;`=rGW7n~b>0Z~Fum4b4jN?tv#fo2=gN2N6Hqr7Q zjzk9WOq^lI8?hN}Gja7<8aHv8hlb-OH*FpU+&SadR>}}k?5YM=QhD{DPY1=ppw_9C zXT^v$`N$y_50F7)n8^Hm#_dYPi}U&sFXdO^;36F{HTLD+fG?NxnNh;T^NbS4=H)Aq z@j_m%(w(lw=nqGFEHwy}1c=6DJ+yYhdT8k{p}pNkineRNUKD?7&Y_As6&wB32((c7 zigcYv@0+6uCG+s?Mop^(JJM+t)JU$DH$Ddh}_~NcSQvT!;9ML(e`*tT^p1D4SIf0=E zpQN4UsnosFHHs^eR0$B8*yJ72^}4Ba(o2WOwn=;CFSLg9hBRz#5CN8lzPMebDKF!p zoRT(HwN^RKBMpa-o8`*iO8^MAPQ9TM9vXk`MZTdW+`R#szR~q0rCDm}%(rlWI+IL3 zouu(scVko6{=-m^brx3py}MUQs#IDA7Sc79UURe|V;Ye|jFUTY`~3g_%89$L(Il?8 z6ETX4ux^CvBkRay-!%uG$xHHa?jpO6u2`!I&-Jz$tdWk3ZXPAvr!-UMP+i7brctz- z6Y05mTb)W5J5H8-Ez~CX(IXaIQd8^)K9t|5v}gX#X-V@y#q9$}4xGx`wj<|XLFGdF zKkC!29@xrNI30$<9gCbDJga4%7Zfsfpf=8$_YIZybXIfHz)7QXFP4YSJcuMdVj)@(a8B@yr2^l<4F ziU35fW-h+sPL-}XN*Q=hK^HEIy!hN?y5n_nCRDG+tB=a6gdv@eq3_{Ao2 zU-UiYc}fT>aV1%Q0!l`+27dvutoakE?aIn(~aE;&oVuj1v=A$RLh9S z2h!?$_%|_xDPYfVmk$-;0`(Qf zBy)3Vsv;Qhu-Y7Hk}_vQk4C6Ov%OTiSxFji-IEoAGOfun23Gnf_vj!lr5Th6BiaQ| zVz)#-hQM674e(jxPP2u+WjUpbb4S0uspM3eI{G zgv(%ggAAwciW;6$`le1wXzc-Wd#2R>{Q!2#hA87mu~pUUVUOBO&`fqY zET|?i+X)=`BVbWBih10q>Dz-F~@V4%5JxK zz_m8ui0~FIL!ofYcyitEaxI^+O&;1-=uaSNvM(7OBk`tHz3pclm3CePKE-m~=gOr0 z2lu=&0XUH!rg?%}XR71Pr`*kXF1Agzd^gnT6UxpiP~D})Yt?7>B7UOxqey%QJS5U6 zNWR`Atk1o6M!3?#brgmvA9r+-o0K9Y=89my@sb9NG)wo#U)A6?CRu-cACpu{LB$+Y zdx~5Miv!G#jC5gX#(W)o7W5*QaTZE{lUL{1?6J(J~wYo`Wa0Xf32g=@f!m>~6JGp!HGyf;sPXfe1bE z#^qjB*uh2R@L`EZJ0w%3V(F)m1uOHQK#O&@ri-78LQvUnU^#%<^Xq7Ss!0IfX|Tp@ z9g&MhCv)Yv6)$dp{`96|n9L@1W3r&U#qh%wNLsD}x==$uss;5pH)salr8w4y! zSSx1sGU<)-wxp!Tlp0i;O(HmP)B_8&cl19K2`?o@sb`O8I8b!e`rEKQe4^MBG-~wr z6AavTiz`O7)+Ze3xCV6lAITfta{{|7PI8q@fom&5cY|Tp-?odt5z26d$1<%1Xr+Xe zcxVYSi8cRv#ZeC%@l-KeyI4>jyI;@RFNp_7-n_zT!KHRpDZps(BrO{=8NoKRxrDgT z#>mMe{xO!c(aoB$|B}{nuRYiI_#~2bsIRitXvyLM-wta)6H2$*8I%};^l^E}$a%K4 zNQ(~~n>V3aR@{s?*_119J9#tB)C=$g1+uRUp6TFId{Mx5^jUvK@U)Q$tv2N#KuaMf zGvgNuAy^-+A(5*Z_$|m1Y>3N}2;lk*r%F{DMXr(}PvT|c5TnI=8x?LPG|nJ(9UJE? zBjPf$#_q>a{c`d}`rVySjwYEcu|rk7%tBRK50kU9txt*LJPk^1_Pd;S!lbPr#CR~! zLB`$9rejsXAPJs~mzPcE70Vx9s9qMj5P5M6#EticN#cc!O{Fg69RB=Udr$u}so4_r zb!$|t+1*FZX{>DAVHYaQ)T2>%w7wi|KCWkr>5c_a!%%hUN2ZTS9D>S6%la7QR!WD6 zH7DdOnd4jiGA>K*{=(C*8itIMDEnA%wK*rtE`p)I5N}*^9o5H#@{t58r(lg=bKz0A zj?!c}Qa4hU}i+Uol|wT%zPV85^lDV?@clB-l2*Ttz{GqA3w#Rb~6Eye%HCSy)K zxL0nlYdwvr^ySdRaP!6@fFA*YxL^(QNskTTPVuxrmn{F>Cbzn4yqebY_Yo&5w2m1l z5q>YTH_B5Y&9jZ`JPRjAd{0d=(&0^(k69YY8lOBBFYKKEh(X*DQnMf{_}P)J_5+L1 z4k!dBC9bJo!9Aj&lAg|79!C4qiok{*CSX3u%K#rD`Bgvdl6oMmCXn=ZHwj0Q@E(%u zpe&ysaIc3r8N96ePq;ub5j`|=0<&`TDUIwy5;ZkeAT%WG@NFOdEB%)z%KAbQGSuQ( z!)Wc{+x{bloMsTSJLbA3;(lrTUpfgdG&ZSNObzu4&_Pu-GF{Rn>6X_Nn%n)ep z8GOlc{q(fzXU*;u;ayWwu*~Ne<;-BtHhK^^S=SM{v3 zb$n~=#~6Cx5Tsu?gJ)emk*=7X8clP$AM3-XK=jN$|WAuLGs zxqk7QPQaK(3U;hYKK&%!5E|Wds~)(xcICXwGN}-2qYw^VPjN9yUDI-Ry4P;o>7Mb7 zqnY5eaX5Fm@Esv~C$5^$Aa9DcYIRRaaQNUuU`O=Y{;AGvhq)xK_aztqdMV;9fGKaG920h+f=#Zg;Aef0|_Gz0mIq3lY^ds#t`thgK8S20FqJ!!! zp8zwz#*WvAqr0T8N2selIBo673T}a)0OE*bNlRTfw|Sq@>1wkghWPhzhe+MP?+SVL z)cJ{LkS=zFS*UHi&?}#c)(+Wmz1OHs{hkRZL>MW!`EFOtdNF0b4u6QfIKrXaK^oRF2V>b*B-SamKlY(M2Cbfuobq~-N%u6 zA1aNg=Ou(jQT!F5+`gAo+U!qhnud$Wztvt=wM*}gFom;gLE$$>TF$$hN6L&#+l+(T zteX>0eXkM?_m0`gMvGsW14+LWpZ2rSq)_!O8{5Adw!;2qM^NwiwEXa-_8Tcm?7olK zwV;eyP&1>XN2E1p3MG`x#2~oPV?p!a;8q-xTHE|HaOL|e*$)CgZ2oSn1SPaWfH3!O zdG;r+e_6sMprP~LTmK=w*702t;7G(6O+}xo=O+E<6hM|NFEh775Y@XFkm^4mzD+Np z$5z?!H0Y*~o76A+snlIb(_FMs#)*TQ7jFVI6xpAd>j z@Dp?}B1_2fw~~k3)kr3ciO}yxAz+Rw33SjHK%)bFaMy5>nqaS=F}H}2^y~C`+MZ2! zP#51HquBe}y8kCCz+Q7pO85f2qe8i4j>wHvPRc_0$rq1^uWOJteVCy5p*r%<9iIg# zs5$=Nn~{BY2Q1R^rApVp=gOE#3uwJ4f%Fv9-kZX2`}w%XwC%NrzZ!Ci5VtsmMnt+b zeJFD8F@?YLSO*3>>;e(c6*5}XwVj*wV9Dr9xp%|rCm}GacUbuv%(Am~c8hTUL5;Y? zwIWqw^`hqxohxbRFFd>~Ij0wXQ4BOl#3b`hx|go@#PUYA@9Pp1Y)HU9-{mT5;2~X> zaWL{U+N&f=#LAiw&pMA4PD4E<+ z4iq7d&OsAb2?$GqOggC6bdOXWDN|l_59fve_+z7o*mk-fvj-0cG z3bs%0aCqYmKM6njBzDIK=LG*&_j_pAD9Ji=&~{MdW>vd6BI0OeucSGL8#Ch8rBTi@ zYjbb1c1p=7fbz|dBAr5;G9aP$bgyzJx=N0|zQV>EzO7-4!E9j1iAiF7CDgS|K1?ut zw`7ZjGhd^9FTV3JA4R?~?D6GL;EEgQOl#UoQCtgyDr&SI_ahYrqlC8N{4#3Xn(DEtio~65><-6N**CUv48@N1limx_BF7NAhm=qT+2+Ck)dm3ZWK!iQ zUz_|KD2;Iwmb#gEs@(JS+R#`GC;Li)*B6yl4nf)0uQ-SW4ZM0f0n7WKf0<4tC>6EQ z-L1QIo@<16^?OUtrCY~R#O#itZ-lNX`?!ov&>!dXcG4-VY}R6T?F1z*sE+LPIB^Lr zLtGPQxJ42+$2@-zl@Q*5aBGoxENG5n7Y;;KCXyQk+|Wdi^-R(6S|g& zWr|h?jF!a{<$Rt&qrha-c&m~YUc5#+Jwl*)JhWa8L(JG)KhY1lpcdM16r2?~ zrsB=H&+{}QpGi;2L{h@nM@g&u zpBufLiNRJ%-K^k)t;9|Rc(LV57=vEYFe$D{Q8atzTnAuD>3z{IgOpo!2qHZBc>(I)2q2$^(zM_6-&wX9z=v5+zwz+)qk@ zqcR;H2On{`Pw2_Bk(4Y;V8Ru+;?o`qI;6lL#F`M#xoqv{!msp|51Rnw>^Ij-Lj`|V z)$I>;o(;$XCA#(4ebZJTyUT4!xb_(ABpY4}w82Bj?3OuIhGPWAcNwX=)LQKLH_%)^ zYr%^XrlYVY4?U$@!+|9rb2{;AZ=u835c)(N`MLr=?8vTB6kd&agSB=WZ|MuU*7C64 z?)LM?Ph*gXd=x^_%7)$)Qfz-@;Pd@XNGWrvRDRF891doTsTfq}M+N6jOIqocj0qU@ zO7|XE|Nl-Ah^Ii{!^^Fv?XUys=uBVq=V2iUDK5{%UvpFwl59H!( zJCS_pJFM|{MyE>t;CxQxNHFQcYXymKJi;8}l+;hX@_lrUB}9P>1EP%pPGc+52`V-6 zgI7Z15IP;IU&672YRZk4s_M3AqRj&x%It@Qk!0OqJ5>kt+PWgNmt9T7oWmk|R>icE zhrnPR0b~=W;7)~1 z!d!_bs`Tu0X;+jHVvRm7_cMk5)jzvYs}iqG!5AHZg|m$vwAu^#(*Uz21q=SHzUY+W zx~tD2g)i0J#<^tUOs|$=ON}Q$R0_c1iTGY+dXO~H5B&m+{$~kXQkPk-6bJS$j>atB zF@dFy2aQFS`erl!wGN7T<=@y6g8c<6G(I0rWCXIG3qQSaOW`;>`Pzab9iAB+tq7i>){0i#eGF5+? z8R_mmnt}1d!xNWnXSi**!8^@cmTQ%j-dGVg4azdrxiy}1CP!`>Zz6pg75E9bi{ZTU za$OhVAdVib$i>@vP4h8JBwXZ`XXioR@S8P?+J&!?6+(L0)3x|$5jY46wxz|*Y@4}e zl~fZ81sap6zI)=^P^0@#{_-}&L5^eo!?~jo!)5+O#yCXEfiYy1==4{b4;b`Vm;^JV zrl}v6KeL!VGBK@rA>oQv>LrtgIwKqkJVm!c$4+Mc^f^4u>(B?IUO|zC(lSqHePdHnz54~1!G9Y7(d36coe+Y8@EM2N!$<2Qat~wqG!LtD$Y9-=RG*9+da?UzLHO z(Gua>7Z=p7EXU&<9iE-nB-;z5SeLC-8**#xV>g>L{+Bvs#c&0vX}}WPFS|~kdAY_6WuOIW{I^ALG+OG zjK0A*xwh_-_V9K1uR6hwm1{ZC{>sQ=V{AEIz^^h_oFUi$!rog(RoS;&-=7My1PNTyE~=38)>AwL%O^BJ;6J!Yu~%Z*v~tj{o(oMST0Ur760RybN(hf z!cffJ`0f2&M{@y%5Do|g#)MLaBa&8W;8Q7>p=tj8p|9x}U*EE6cHQBYBjrxAa+**> zfK=dEype9`s5*?@g<2yE?J_3Xn^?I=9Da%V@d)YJe;Pma2aH%Zae$CWwRimZD_AeW z)`+F6dF(`K2xK=5bki*wi67fLF?spfhzw9e2fdid+Cftm1k=zVcN=_(;dL%fd5D7{ zdsX&16_~gL=v9B zB=+LZ^p@hSNsBu#oHELF-D<=#v|y7jCl=&%T*>N*w#@mqC5&* zW-;MRTQDyeTYRUFxx~u-j`;-g?{};NyWOEDyjlt10G(<3N_1{v(^QaDRsVY{0K)HB z&Bg-r@84_(tmMc8e~ZWly#KGQst6eQc}Kc&F3H zL)mtzcKT-hw{qnp44-O3(5KF;T>LT6WH_;;~$I8cAf7O zR6k7*{fPE1v{<}eanKQjlW=uaHpRh^4!&r7L!(d#hGybchK4(n{+@ACln!58N+Bf9 ze2;kOD2aqJESDbL%LuG?Uc`=wz{hjBG*1kQC+ zEfDEa>5QAP2Q0kF(B*f=gaV(ec*Y zK6rFPr?KNs!*_)FDxl1i>x#eSi>96CV5}1nk&Qw>HvkiIy=c_WmLu!jmLGkKQNYPp z)g|al8}c01MzSn<#8O?VJmC-({tpeuM?q7=AysOnaMsx>v2xHwKjHV2i?e7B{$V&~ zP2P2oJ+wDT%QC8SdTjUj?;4Ilxy!IcZASRWDSN66Cv=ozN+Hwj6K&eXr78Po*KB$J zYBvec;W+iDlCTx)*i=U77bPbNh+6K8~ zd0CyVK&pK2$aU{refxHuZ1!$k>&auEP5Yf!B?rDR8gAcXF~@h3N+TQ=tBrng`Axmk z?oEmMmi_Y@3L0suGr3N+LH7;Dk7$HS?V&X&RvH$F`4F}}WNm9hhPN=WWRLxR>6VcL#nlo7B>DvIAqRH5s&J?Qk?L@t- z9*II1_tUlb@56lPcXh~Ppije*2P7mD4Io#iWAoh~L=ZDJeHU_vVru~=tb}?R#HzI*PR~%F3It$#-lYQR8;e)6p3gY#8N2U*iQqN z@2&!dEx8hzp3KW))%4#brJ3eRRo^4vv?q@EzvsMaoy?d`IrafsDwRi(sXKjAubIg`Bhg?B4eLm%R8=OjnU!gFklr3DxL5yvtg~-C&9Za?9-fl z|6xG~ zEo4DD!8-2>D#F>}+`;vlmeFTyt%$Z%;hwx^v0pOWpquxjoAA0>vA{KLy^T&aA6aK5 zVx)Wm-U(lLUYDcH=wZ%CIo5)|g(KGmh*f!7W>>DAXT)uNreL;1WeJT3H~Ko)I`qJA zE(K)K&H79$y1CO>3Mum7qOChNwNWa^U4&lhIv#`D*04vk#No*D8cF+Ci!r;sle({9 z3OxF#$#kJo_?f)NG;>jp@sd(qGn>XXk%$OYxd^s$su$B^J2BYp5;u(Ey%@^b6S?GM zryf_8%iH&DR&tBe9;!e7t;HB#An2z?5jiOh;4wZ-8PF8#0v-6?HIBW?sG+qE`ba9z z%hN48Pk#XWm-J{@Tvk>P)CRg4lIKxs0y=!+w3bPnWbZVrJUUg-Y6R0ivlk;LEJ!ZOnp>F~_jP z63R#jeSOyC`I#*~$BUdqr6PUmKM{>F5yYqc`^l8^?#pY{)5gDp3YT)rCvD{n7 zItim$@jT2eBIVKVx&jzmp?TylvTk!-Bhh9Yn-MM%ptnxM26PGu zywZF0#c&oQY@`{Y7C!uXiMwLrgTGKIyaB_Es#aq40QMSn;$n zAEyM-UK!WdXrV(8QT_}OXw_@cC_)%eu;Bt3)?AcgcWe0czOkedizIc^GE^aOv z?Qk&w77wt2u!0BVKe0cQl~vi_2Iro9QBtLc9rp$1HDGLm3NJ;f<~XSu&^!SS@^R3A zIrYEn4PK(Ae;Nh;(;IOOxZXlBjokV$dC8QY=N_rvZi=l=ovW(kzeyO&zC#yX>G3 zV98tb^qYtb>n{oFnM4`46yIDfj5Me~3Uby5^RZP7F9`%Lq70*JO=tK%-1;lVm@E4pkhxM$| zSC3E**u@7~$zf6zXkac5*qNG-SWjGYTX1xLKypcSeckdTwf2MlE5!93YI7^8*y63q z$-wQ*P0=CceuxIw496;a+T*e51Wy|N7RS@EgpGUNL~02-9Y(G^P5X4xBiVHAJK&Ke zB*T`lk-#A#g&Wj}x{+Zk1-#PG6_3(>7lK6}pWJF&g-A6$W|nr;m38-?B7=zJkg;jRO^6|+dJc`Ob;oVEeTkk8OQ zX{ccIhf8r532CB^kJlQOj!$@*Dwop9v-LHTK7&c%fF244EYC!RlM6Y5Q(IkT-Y1>} zrS;VI)lb|cAn~@IR%3l68D}FP6^;`;4NAlI{M2KeY%HHo4*RN}KzqIk8SnwPilwb- zO_lzXC>4X4rGJ#a?xQBimcuH>Y6PI^Gfn|rJ|(oV$;hux=+m%k5kn%|;7638324!5&d z;%Ru&O1HkQjZxFX?Kc6JbCaPixZ0evwNX9d)>y>ZXtSuQ?RQm%dB+o1l9GB#A$x-+ zdLp(W{jsUYmdB4OEZEhv-qm)``nU@xj8~L8H%Zv@P`>HRM;TR{Q3I!Rly2~rs}^;N zCFNV6+Qg9pLgE&Fku}?%X~4$5Y&H6;Ws_SL8w_{zEJW6TpD6B48VzwojMY)I^3MV= ztBSt+dba=l>Zpcrgz#!)`({qweT{Z);#n^88k$HE#c5_%~?WOL{dauelE)fTh0kkRkg$6M+|w}KA!kAg!bhlYG}?9 zC)h2X<)RUCtRkj_o!(@XIXa~~!N_tI<)g=cZyDGY72I^oXJ60m9qb@H>{>FsJbAlL z725-|WLHIvc4vLg-r-?p#qqkt>xn602(emfaIGPEju-O%MG?Qq9P%FeTEq&+bR?8f zaotjrHc_9xfQd{bU=R6d3prG}xzFpSDTyn0PB!Ofzy zm>cUrinC$BD8jzeObJ=Qf-T>PKe_u?2c*HZOqXCRCs*@{`vNAuh4z5?w4Qp>xGTQlvb(VWkkz^$KMk_5ZD8QIXVg3yJL8j zm8+2HTOi~quI5GLirIa%7{X^Xs$jkb%nY0m<`AO6`WT?$cNNsy8YdV&w_+r4xMWYJ z~*#Is5-Y8!tF7}>#284=Dy|)vwn9&D zRz;nh${+eU`yc7e$tCdjP%F!Y-~#owphw?%?2UZ|R9-u&BXwQZpY>KBvqDyw0dCfW z8*N=Klr7|>-DPDd2@4pT>#GWKdEx28d$>~k3E|+IWN9{x5))Y{W%GmGh%-KIva*pX zH`)Bz_aB@NK4ne??b73OdZ&voG``s+6Ba3awfxBH8X1L0mlEhCCcqB)U0(Z4*%cm|L7u&(^PJO1rP_Ei zufs#vp-&E8j}~}@paO`YA3ny>t8#4HMQMavQ8UKQqmg|T3RTF59(_v^i7kc);;e&b z@-5{Px}TF^xBYy*$YoR7G$a4HM44o)s)LnnT&=FUzOJB_n9;gQbZ6M3dZtOi=MpDP z{2~|uH?YNs?E^mdaNB&Fm4dC4N2C7Ot;tjq{wB#6#9>=HXc2wu-@pFzX6 zu0^dHs0Hxy7b%VMSzE`Ah*O!@t5h!j3Ft^anmOh57n2$;7|K?FPjheY%`C?n8Ih8Y zOOD-W6=8_TiKyLAt7SJV_>%B?aWk)%K zC{ea0vrnzE-Kmgv4iJ6Yr376$@!yk$iTkabl3PXKO%ac3QQvCI*h+blnL=%3?^u8B zOXlk5Le-cE)1T3r1>AYov_F4(7Ic_==(mN})AX!K`Lqnf7GQ^$&XgA zZAkf(?U@D5hTE>KHuTYFb`Dssy$aIC626ELpDCsrdw3(*`nZYutwwOXKKuY1H{uJj ztD|$i4%E?0kM^B%NQ5d}FGl-xTg<>-o-1h>Nd{R!ywd@JoaYzIQ!Cm5DQi&m)xw>H zPC0sX&OXXocwY9asgJ{v3&O?*1fr^uQNlL3mbv@qC_)bEVwr3s>;PvZn++`LgQYOv zyPc)g=(L~hky`NijK zN*Vqgs^S~KYtxf9MM9kg2XIaTUXfi5jwUI#fYG{y8U9mw^t?!2hx9v6Uy)4Y5)((Y zfbCz!k|t%m#pxb87+f(Cw>U~JIA%Ba*ARy6J{E2K+QVIcjh;4+IZWrfq(1;mDpgp(*84D{ ztf&tI1xAq>>FtJZVg*W6Zb<*uCO?q0|8@pV3*kWjiFSPkEf_4{IrOET2`;;Ll>WbSp! zP?jX@FYdY4ct)2_>q($&$QDDE?wjTqLBHV*6$#a5g<0g{H4+GOw5Mr+;R+0d#xKIz zo@)zHXEMAdI`&P-;gT*+a?XT@cbbz%h4+$xX|oEODb#;YUIcF*RvP?$-Dfj5CRO<7 zRxPORV}fC;J57$H!zC>2z}`JX@m?v^zAFCKz4@!h)h=D|2v)^`s5;prP3|fM6D8{&jg-y z$S&EF`O3%4iiMCAaC!t&Na3X159z>b5bmx zN>2ZFMM0p3=4FJGz^{~zLuUhesCnMQxQF;V;>@X4>)p4;QB zN1_1v<$vZFfDM}7$za+OmSC!yCquPhxp~`@%=h9Hqb3&>8Zkxn;#ffVq~`XkrED8} z?p>f_hj7) z-afLLbLx%1OHPJ8FCRKQ3`wi2PSk8ANi*#dT2l7L*F?M^`I8h zda0!q4NJjJYfmhcbj@{g5lQpx(qUD0k6oqB#>QIkaIaeKVeYW^eG7QiNeMLs7oQnw zX}I!CMTxbs0nYRM8W;xHnOUL_NUTu|_{++gq7OSHe4`iDPH`x{dyH1*s-*FN=N7 z_SntSHyi)>d_Q!Kd`;O4X&GhF0`YG0ajC$|e{a;Lb#yd`k?jy70Hl-RNb}mJbUSfi zbN{(!LiVUURH_z&2@a4gW zlI5;OG`wVfrqveDpAwZ_W2AlSdkcNe4I{li6&cWv6=z7E_M^~?TXN4s;As`b9uWE_ zPq=@8%J-sOSj_gGD?&~kWLvq0mB9i!=Lu|a*_Xb^FXwdzBPsy&+9)dd=EAdFX)Q%& z9tT2lT&X*3Rj9AV<#o8jvlltSlS)-rpUcHe!<#-$uMO9g`iQlzuJYv9TZBv2U<)ac z8Zq1{FVI5K1U}3(1L_qao$e#hPGd^6DjOhN9EZ(b?&kLQ77x}PBI)}0?#rloWFnhh zrl^fG{lDUedhawiMof#WMhHFy=B#DVqX@3*S&E5zBXg9s)}(#;Z_sNIjq|9^0ytE9 zN0|mcho#8hJg)boNTijAQQ%X(KBt^D(>`s*n=rH7DNyTLZ^t-zriO*E21*xzvqkI8 z;9Xox!-%lgr1<_?JC3~?{e@w?kJ1R7UlIpbTa&zUNf*2pr!~yqK_1Lzcp)Yr0g|ie z>vx*I9rf(b2xQRp_m6`8E1#irIO!2w4M|==v&MLo4nhaWo z$~T|!&bLYQy+7Q%u7+ZPfRu56R=kssOC;O-2GWSUKVZR_yxXfGSj49mpRTM=QMm

F}WLcUGSKaQUPUgShH)7Y4*-S6jjEDmIpjT0XO6wny? znHOjzM+0K^f}n(yWjvmwk(E|4*WNQ*Ewl5&%?kfAR(mPFxlKcFT<&HDW2*op` z7$OkrBJEC@p%g9^5a?PUq!q-%qf7uXULA!I98G#shP-;NO5}XyGxRh2PVb2pF={ro zk7}|=eL!3hP_3SAywLVd>BWZKhQ5k3q}4C^n$ z^GYsJM+CY!w2F{b8Kr*HghJ;sR>(pN1hClxQ5Kyt;*_f*@C|amjsFEEl;ClhNU^?7`GITm01c{HeVl|JOU?5`H^8Fd9>j1#8o`teQ{kr;vY^uV>m&lF zToZ)AdEDx>R^u_f+9-pxu9=wP&>8*N(ThHrGF)p6I!y>sW@ZQt1+N2?S9a_A1Jp4& zwjx{UC3?Lk-VrTLVPpQ~u|5-N$^O|_`89t}pY@hnRvo6PyrU<~v zu2Yj7jIp(MG>324LIb|$)8M@Zo5LJ9;CwJD#KRm3@uoKp?w8%$&U>v-QEnxGb1jo2 zwrI`+1&*W0g{u{wC?q_^^xx+M^-G;C@ZH2ys6rMwX^<)SI@_YpK-;S9EeRromBJ$f zJw`5;I6uw!$Nmm#z2|88OQA-eYxV0isYAS$P(%RIdJWV5W1G3=vK(|XC(azUwP$EH zI<+9``O^GwK`U_duqAl=Xdj!M~Hf=HTw2#s9E^{dGGfKK&i6^~BsSOWJvi zIAzTmj_eV~cIYpnWPTMJPHOX2_#PPQs^r+Frd5?sTp#r5KQ%Jm(tR>D@b3PYHhsg_ zW-r$B>oL?edachf9u@@^Id;7p(<`F~dY%0CEn8UgZ7m}(Ok)72Tt&}QYPEoVvQI;6 z#`es$^pn79#-b_ z+`0LN>>pQBwjU+)xzy;i=_QKQy-Qghq)NoZq5|i2+82pfYFO;xIXn}PFhfwGc|N}Wy3kCsLeCR-dVkUikd}D( zYxlpiR$7}D!X&XkJZ~2JDv9DESrzQjx!iBcs2JDKc*4wMtn<$p2tD04j9H|`a;*6! zBB{gH(RkQidxUPWP8Uhbp@Ufobk;Z$|Hx6gjpy#^DAI^Zk;TgG-^;5l@Jq!u)hYrU z-m*R!>1V;8M@75cy6b_(;ST0qG0YUaL~gfD5NNv1u{oz>-GuN-A2hYN;aXP0fRZE` z$mvS$2VOH}-yC{6VhbsDTw~4s)LktiXqI3}T`gf|UK60fkz}f0<+IU8eKy%4&he%Y z9I0pttmjO#h$0Q|hAUTx>itE{Fd*pw0D}()zna`_o;p5l9h*}$4sgcKzAd=VQI$O! ztlrzMTXJn_;OO&OF))w2t9noFMy?GzTI1LhXCkFU?qR>f6 znWyuCi$+6fBB%@Nci@KZ_?N(9X~U?5rvhh9L@#suTQ&L4qiF@Fena*C+glJhdeb87 z5}7Ua39-8jUAG}x^$0YJH$OYd)J+fCE<1TH$i+i9?(3ZGaGHAXzCWK0ci&c6`{s_v zE|ug(Sq@;}zopNj!AZFLz8fAzz=9A~hvu9++k+KetB6bEFhAO$x<5R+2Mf{g^8m39 z{&D&%JKw}-rm#ILBM5xOiAv;;hN49}!GgX=s-h%$)vHctfe~bB@5;r6OI%Z50w_QA ztyn6~Z(uw)Wd@@C*GeVt)*YliWrAGPD{|trliZj)>1txWYBI9jPuP7yfODcLIJ48K zQjUvC4AQ~EHT{SK?VpA7QE4hTT;@eVqyOR^9fW@i5Nx_?JT@1&DUNb z6Sk+zCjJ7diIzBV{n~?jVARloL2%{MByO)CjfhiFCp?kflr8NN5o+YpR3SIR$c4sm zSGb`k-8>wWy%TkS=nCwYh~)gO3paZ6cx?rsyTzw8J_QIRrFuTxP0(oGwpY#fZZ*i3 zzSDSQgGoe8M7dhUr^+E){Ko&uzXpW}?p$&2zEfv>9v?t6si8o992Yj*=N2BVvo(_) zBZ;&MoT#J+fC9P^A6#(2kctl082|v|BX#mg(^wc4mE_pr(2pFJiSl)8u0b;nKb_4j z15%6w5z~!=an4^PR_@ay1I^#IHQ0w`u%xX5!u^j3Qo_Xg*X zFnq|9uB7^OKIg$-j5etY%7*4msk2D)1)fBMOMrh1P?g>@Ip_<(Yc>W_AXV+! zHd=}e`hI5fuN9Z=UxAc^ps=A*8+=E^odT-d!g17|7n!)tUqY&+yt3+~7Oi^wK5;NN z3o%$()u>!JnOH#vQY3`UJrzfcBz7c}nD=S7tPVcTc-=w(#Y{%@uzc}bMc3fHuEY?Y ziCsFjM!o*W?6*k}t>zbG|W|^P{X<}p3+>-kn)pyLs&_KAQxO21m78_Ns$i^jL z#}T^LXnH`(54`_4x)6In)7yXp1z8mJR)$))&Tiy@r1iswssUv!jbv{)cB%BcOgJ$j zws>xD2MZh{SPj4M>*^Gn-QeR!=WTVz^5S6CYO!oXKTE5eMhjzWOF45r8W0}k$_T?{-uSFP7Z$?iFr{c!fhY>^}1fOzVM)IDurdwk5skUX=A z+zcq6X?wSd?yY3z^oo=Ahsq(T9Y-L=pw*z-V|+bre#EO&MYUgdC=KwjBgt&-8e&U6 zCK%EPlmx;C(u$8k9h=MEKy!h3mQL8w&+yvAZNBzMZ<0ZX-4VX|Tl?36fZM(XMTj+0 zMp)7hk6~*J(CBLeysP}kAcTE%m(h2xbQU^IUMS)uJIjm@#e6jTYf}ypII?qAtEff0B>;u$9vdHg z{@SVA{lI{uHYJ>Zn7jq}{~RoVC%>a}$Vp!YUZ0heWnzoXfP=3Qf3sdkJ9MQu{uP?XniXs7n10i(?QID>Y_;isfesP^Yo(Wg;VoRa2{rDyi+YL- z7-aE5seop?Zh&BW)xA~KZ5^C(h4Cy49RR%;!Omoqg$ry?uf})O+FI;2vEWm5@D6rA zvJ7K?RTG;Fv2MtyGA&!Hw*?!t|AWQu{SMCRRC@oQ$3IoN^CVYh_T@COBU9faQ=$yW zhY~B}aLeU+uV+ak#};U)_#Fs@+mdK*tp}(KK^ynUsB4RD-HjB+F{Y+_C~1!z<05msNN!|AGs0qd*7{ zznJ4h9*#=I4J_K3Di~4Bv|U*Lb+G!BDEKUf7{UQ-K~?SM;W+P@-)X?n#l|A9@o4t& zW0@n-*pbG(Vta~QD*U#393?MT{G($6g#aDmzzvG`gG0d4wRs_^Pi##-Vn zY?W%;Zk!bsN4&HBT6iMUXitHgAqn*5KP0=^n^1_@jC3MQwz$_m`=SxRU-$SwCjrCW zEs;#4qPy4j4O6O6mi)Al^WyD+P0>+m9xfajem0sG1H;LSU{`U**&;#VnSEzX*Fq#y zJe^{WOm}tyYm%sYaE3~s0K*PDmQ*qtyWmR&CH0&8f?jlQjd!yx;mx}T#|;R(*|M}Vq!!Of zy&N_GGL-Q7IS|OyQ^gc{xJ&{eXTP2lI~b#5R`EjP$>goFeGT|sL4Fh^vesfM-c}M1 z%j;`L1}_S$Oh8R2;1~M5Z6TmMBe(xHrp;()Ap<-L4eLIX2>Z=?y+!K!kQD3$XqFf`lJLCEz zBO@O+iu1m$|kRbW=x9@{OHc~+q3%CFHGsOv|BDJ7Mm{Q%awSZTpL1y^GtQQB=~E-{D;CE z=LoyC)J?(T>)qX!c9o;))isTcmG+-96#$=>MeBeAZ>{4gzbk@JqmTYdOrWhTE06p7 z)%#VbuT-V-8)8v2v=G7%PWguL%!S$?am`f%`HaeSGw|TMfncZQi2lCIfN^ZR;YXo+ z&QQm*E=DR0rovcF;}qq0wsxAWh_*VM7c)n40+`53vJh+^Pm~mV;g$|TCIv4|nWZ>Z z)&ccjyiND&Nl#txPg>M{-wvC|`OO|DJ7`qnKwZ&m78PJs8z*eU_HBKdRuTh>$^jMX zHZ@S_Ww#knDxo#+F@A0OhSuJKnOp1{E4gK#{(d~Z+@Yn0!tH6rFqvy!R)-U+_KP_0 zBx#J1l4c;WA1lGDECE>>v60MZ{s}M9lT%Ztl#f;gAyztg?6J=x-mY!!FI~PhTxGYQ z<}Z0`TxGoPD454js1ws=MlSRfG*{ju?+Z$`q=P9%OaMh$%rANmkSb3u$}Nv3X$_~W zS2C`N&X6p1Uqt)@Qk~s^w;#4z{#qaZTxcp%{JY5V5k!sprzXoLf|j1 z`8CjM7S~gqt6`1*0;tKeb(S0-!I>7hx}ptbIq&$xbhI0Rm!Lp$R;cdi#~tVs0^Xf# zHTJWzL$KM4rm;GI#{KGM;@Z){shulte^Qh>jeGeOtGoJ;paf7(Q_>mDL7FdsADfEf zYqetrUCsyyatI}Hh456vZK-eYdaV+fhlC?HBF9K2PyF%ACb)msTTb4&d`l~886}0L zc-H5NY&T%O2|Q^Z@U5QJcjfnKeK%z5&S$dWbWPp$qVO=ur41o@>HWxft}{_AL%z!2 z+~&~#UA^v9Ts#7Xj8V3-j{}ahAvpsiOJ$Lgp$k}fD1HT@>0lqfWr-Rf8#RBAZ z8u5VWsxEH*%A;?xvQ#Z}WfsDY$OwfxFIBP4civ5t{peHSAnzYGg!DfjaOi&^&abjZamD1# zMip zQDVh!94RE33$6m|H^nes+l&|l2XbJcs9OHJ#zs+P3N7R@0PX|3qE93Tm0<{}1HDx$ zeV{fe3Tal~{%t{2(X$Z_I64`E;f$Pss_<}#`A>79M_D`Y*CXNL#_(lHsB2@7RNu|v z&)34p8Pym*cLVP%PiB-9cKiCG!r$7F# zXq4{$k185nnpY7@3K41kR=_d+w*n43B9gu}m{F4F7JCSvbS$Vk$lv)m)c^~8H+x+E zc12N}$Ukrh`OgGBULSLDSuVh*sf0UYTnqA>JckL<=}DiMPppCu9N+6WrSgXL7pv>> z>^r@!RXw9R+@`=S^v4nF>g*|_{XPc&CF+m%Reg{>Dt<=&#?N$+A<*?1!D&l>OHO(u z$00A4VeVc_gBm+R**jwPi|C$Jhv~h~cK8I)M8CqXclu#GhM01T**0C75&z@>1AR&h zjvVN9tY;Ns5%&wX*9=JkWT|X_9<9(&YLaN3IswQQXFY9J19iW0wN4Y@R}j7z+xCEXR4`v)K2~eb~nQ*10tTKF?$B z^z@LB?`$_Ebf?P+2|Ro`@gUyjr31+twi2@H5X3dRzE9nK-^_>tuBH#qFNo~1ztDD} z6OPx1O22hUNypyvOb*hDX9k1P-<=sF_fxleweh8d z=kT+|g=(ce`@rk~ysh2azxCHCW4g%^y&N)O$Bq7{0@eSmdW*!^wXaL$$pg1s5{q~A zLwH>IA}KB^k8~0NrtI9eM*x)Z`S%XueU6#|N*<(H$0`x!(`~DMhFKdQNVA2Yi#R}x zoUmaYxlcAM?= z*ab^^4m`C6n@(LdnvVQibIT2D_png4#$N+>F|1Fg>^3`&a4lSRVDVhIDS`-6&OW(7 z=|%4lc*SD{9I!KP2k#Ge1u{yL1mPaZg#FK)2?Oaz2fevz;iG8(YO*wd*V&{3D z2A1d>rKN4S9K@wqzS;T&#c?l3@0e-g52l-HWlyK$7pA3hFy7|PCbfNU3ulVbp12j9 z35-;f!lEJ$#?fh(D4h`8ZdFeXN*p$l6?SOY)L)xF+d5I}FjQT95J^@)K4N{igvX~|j$J)HFE1U@ znws(NB$o6#MMkiK=9+1mDy1gE4x7+wjR>vtzi@}5L=EWp_hXS8(g&g)|AEazx2>$?8i?O8_uSnu1OR~u*I#7j51kk;w(R7=Gm()h--i@IK7OTR&DI(6}y2L`uO<*21tq}}== z(!^zY1#Bqw8dJfx89A=`3=N;Uac!V{ZJX8^yX3kt!$>slnZcev-ib$AuJKd3qul11 z5hy8zVdFXupz-2I$(#(SNiIU;WG+ROx6L|Nm#n)QMlTz>bd6$E^<$W*5o!>$4z@UY z1ho4By27y6i8-EY@RzQ0bC!FQZfcuS@+Y&1nXpAsU#ak@YV3Z)Q<$HTNf(=!S7p+r z%bNbA_$B*RevP^9jYf-o2YzzDop?_G{Nr7CocEwB9GM*xn8xmH+pw-v1JL*Bwi zP(Jr*lg-fda(hy#%;FM=?faW}+dNMHC@65+^+eYD>h8KJ&GUx0YEs5Qqg+hYgD5(` zVID-#A-0>%hyZh-lIwMI$&N2d^JPNMKIedE7>9c3LkB(~)q- zsJ?}vI#rD|(w?7#@dI+A2^Z}_hjx_s6bUjqcypg zRHR{0i!kVQY@zlE8uAiP)6Qt(lP>oos(Bp~u z3)HSY-BrO-h(7TR`fTz{xB4_bZ8+YiC_gp|^jlu3n6L6o(!<|F)qb=;tMMEzqPN1T zUfbDnLSA>-wY}ty91iChbWb6_8|BF;5b>Y?c1I^x^s6l_J7|M9nVjy%c*7Dl#%!wi zT0P}?G@vN_tO1M$BH_=DJUfjw>%rTp5-DIbu%>8`KMa5F11!nf{3WQoUdJDpQwmaw z$6X+LZj^5i`m%@YLa-B!*x}CbhOeZgE49>D#P4ujVXDU2NFv?byx)0D>nIjPW;$NBG|;9#fMR{A%7s-?463dQR9Ud0mi#SvnqBJ=Pj9 zc4l6Eep@i#f<-Fx8S}0a$nn4Qcl@f@TQyavtiQhsy*hD!e~*k+YbsCN##VbLqv{59 zjMm-Lvr&R_OBBFWe11G!2G6xWgFcWq@cQ|)#r+t>T3FC#MG!ZkP7>VRGnGgAJ$-v+ z!Y{%R>m#8Qe<{X!P`WNXTFaGeaZl_I{@AuDjK9R-YDQ+d#OwHUXRv*3JJ|aE4b;Ff z!5M?BE9W1nczFT=iV{mf(1F{3d54JF3-?^DI+0K8dkH8wNbzmFBykE^B8c89$&i~?hmv46y5 zT&+A80v6zKBe)?R{l6o{WgW|5wY!xES?bp- z4AITicydpiQuWa&Ct@+mK2#15#f``4FoM1Tf4uYp0=7LD5MizCCibrD|5w{vg}2eQ zS=vd=%*@OTF*C=^F;ncA*)cn2#+Vsm=9oFAn3A(xd@-Di~yeY>0VXxW(qnkN0_AU9( z%t?c}p5Otqj3$iEL8DPzBMKo^tdC9QQy+noWoIF?N-y74zh0k+NC?GEQ zPo?sdd3r5^1|T`SF|>M=c++_hmy(|@x#V?Lz#`dG;Dvc1(nlL28WDbuw_>cZ0kMDS z!1M4ocfASq_`Ff~-Q|p{t(_rRMK=;X4xC(#0qEiXVTW5DFIJ&?;yV)HdkB{tuaQ(x z!wrZ=%I^L(H*v7I+IXIS7cz?Nk7(Y#Qz9R}yD6f8nxenSO2RrO(5{*o9MrXyfXzG( zkD*eufNUe2Z5T#*GulHrm_ZJ5j2Oc2%jQmwjSESkbEx)7pNWEz zPcSyTm9xVdd~&&PNH4$turjJ23MYsI7SZy#oJI4_!xJP9)_!V-J4ZjJ5(q%!L1pmw zXAu#v3i3HI#-H2sF;BIk6tF%g=H=<|{IHBYVPY=s9%J$qT;v}po{GZ3?SOl|jXf2s zg?Rneh+O4BDD~2Thu@UAd;c`Y0st*YHe?C3wRXloF=jsvVB%=AyM*j=B?Gp!m|bXD zza9z%wVxj0D&7U!h6}2rL{IQ*PdU)Kg)5qBm&8Uo@wLD3JX}!B|{)H}5ms zX*HGeX6Df%1O7v}eZhC{f9Q)p^XLB6=+z?q&E|7ylVJD^^aF658aHJ)`u@@~&~PSZ zQQis)f{OhJAReHI;%$N55c^w&WDZd-!X5w}0Y1=wkbt=` zd;gah`B4BgD6;df=)lY5e|&ub0X+BP=VG1iF^>QLLY*&%g#i#iE1ZpBTnh5_m!ozhM+cc_SyLVGmEPi^@8~7Fvm@bp+c*x9c{`Dnw zIBU?YO^z#Sj;OB^YcF?~?W2z?Fi}Y2DHAl3y9ZH~TxwE+aUZ&W)dGMe+WgfXOmPnN zOE-EQCVpzJ1~|XWI@__h`)hlJ?w^$A`E*aNl4PygX>hx2-!j!^@0|$HrTw8wn(9Sh zQB|g`z`-q{`kt3~0J$I^duVdg%qw@@;4BdhkUNN4+7mt4lkQ<7-l}E8@6;W0&7I7q zB6}dsr8*l&Iu)*<;2x9c@F7dRgjDXS9DoiwVFf8JOn|D2SrN^fJyr2Z@mZ5ccl`W>584icZp-Z6*bAH(g#6}mhKbsEC_FW zkif2ieDcv50*Ntw0V}wXyWX)a?H!%NC)tn3i#2$!W}W`7M=K3#(g86;EIyxwK6W`E zB;KcsOkFS&(B&;3u*VGL=+be##@PxMk{LE}DB08a>8TX)Bu7Qm5Rxnj6BFc_HVKDO zufdfhjm>bZkoA7M-s!$8sN(3toMq7uiWgKgXKYd^FS^HW%?u6 zEu0n`;wLr{7xUX__4MghsK&<$ey4SR~o=2Na z@Aw@gK95je_7;wO-bt=p0VtGpV-!Yb(=X1DN z6}pv{;}~`I*efb3OMEP*^)zx(j~jct4^3f-SNl$S9=cNqR2CrZKCWh>VENvh;IdUE ze8Gh8MEgY6ZIB^jk{q`jsHb{Q;?Vm!c@IT9^KV!7hE>KHndtwAOp%cfi!r^gqdhL# z?BzboZhId^?NEUN)@ITt{gw4O@Hr?uD#_}bUQ50n)s_Mho*YG*)B@e2U{7mw9zX+Ye2|2dRvIfisLf3ox1TAKUPQHjCN~8# zX4(%%PZ%Hw*MK;l{LNHH@s z)*}Md_};O(hC)KP$3=Xz&(0N_*CV~S-Qf3@7hG)4*Ci)= zfzK}?`Kj)bD@f+!k-BH4JgdUku&tesC2~h`=xjlz%!8{iz}X|2l#W-_(rh(T+8aP`0m+eVTIQq4EP*4saEfrw1-P%+94E&x+vLq+_0`gxh zFWm@{zb?Y)jJ4Tb!|yv%g}Ml~ZgtV4pt95XNJhZ>yI;t8>D!jcppW5G#gj5_XO^^}WJ^;FnSfX7*@ARd(8ZeuLd%Nrt&0;#s4;|NKk9#H`K0)hgY^i}Sl=2< zUbRB0%OWz%4#m$Z-c_Kd*fyAI7u%Ly;k%fFyz@UB6(lr63r2*&*FcvfK+f{x@vP5LFTe%Hz^#nSP?m6o)S7JLdJDUOmsC&Bf{ z9%+tArb3hZ5dbrRVP#+++9g$hrhd-rb9yd{v;x^BVtuBA_r)(m#0m#Af~tg`g6{o> z)|4k#Xa2El#gslttc(IVvD&nbh&KWx4oK17Gspt)ayi!(>iyrM@4Sv_dp_mj)G0s3 z?bBk>GFm0;G*=TwB=uqC%0Ww)4kN(|e?+xI$z74V_+<2h4u!Gj>~(t6BaePU`UAUM z$nFZz73#6H`?s!8O-44sC%=~&Lwf?ox$)*ws^tP;5q7BPHE`{9_ZxQ7?YEMjJ5s6X zFaglT>Srrv&ySO`=*I~)j8zWPq=Q#sxc{MnT%HaU3-;kD88z({EKu-)U+8jBGJaOm*w3q@N4(s;oAMS3>b(Ac5a zNcp5#PxT$4Ut|#h4v#*f&Cju)FD*u7y1Qz(Zo_83dSm_{>N%392)l;A&MOvj7Q|r0 z)?kH+v4cYh-%F~FLf*D0C~f@$9qW%n zV*ZI5NolX}^SwiC03q4d=5ly#utP6ao3k8*f3H_{SXu)OG&!yXWJ{1>F&vJbD`{+^^DgE#C`{U=d zz&v|s%d!C0opph_mf1-*{lga{qFCK zAmShtm4_VE_}MBq*iwsMM}kH}e%}9H{g9sMSi}buq?|#pP>7h>o13q?h-4&cf#80#5nM>F3pNC z+QD>Wd7^$-50wD(-iQI>?#H>mBu~v#P zAhRgjQU(zlO54z*rk>#HS@o-Vw*3-j=+%1$7$n0k@{a#fI7J9fpeF;FX#d~}{~P}N zKkt++6?6F+vKd1&J(0sL3Ui;W*VOq(zBWi9=c<3hWVoSxAB3r&%R={7e(f3oZDYe+ z8CcZk)ohYjTZ0A0K3c2QmY%;Nu$yk6r~DlkJ+c}SGtnQ;GB|d*>3%4}xuAP*xo?k@ zXUN)2p^c;mUuWSXkhs{UcDl(xKgj*lQ0tm_sQuY*T6nX8@pntsiS>uZxNG-zAWCN@ zE@*Wz&-Cx;2;JT2y~Ift$+_8J>_0+&*veGviArvq6e^N84O^jh7+Zo@=(5CA~oPwg( zR{Si_OBnfdF5kvRE_hsaXmfJ_L)eK(xfK`rmhW6<(Dl{5f&ur(=~@9e`iU`5@F?hY zkWYLEdC<4CTd95!WWkkc%5m1#D>ly4{|&(mav-Jl5V^RKyvW)+GG)_~aarT->CDCB zqUP_LO7RGI{VmNO<$0ZATKt!Bo1eCEV*6RA3MzQ1kx(Jf?4!V--&@aXdl zqZa()7^|>D_q|Z+J5N9X@?x#E_?LGVIJhSU711dg2ya5Vh#j5T+1U~bDpmO-psHqN z#0lx?%%=`1G6Mll1VW>%w>kc(m6-iIs2cY(0ggf`;D4K#yVx21vNqjWb3j{x7psq!SYi#N)vpNwFzdG@u0@4I?CyqA~_V2 z&l7+OyafSy&)Zya{ln7v&)mx+zy(@s?WDOFNdR2~RK1UaNV7l3z92k8Y>RUx(g7bfo@;V0_D?S)m2Hr~C1&6##@))nh<`vA zZG`Iv5_XPEE*MN0&hO*59516-u|C_d^KQu*hv}Rve*e2AU*}+=ZsQ;E&{Pw3mbl)$ zmbrCSqDyNbi%ZeOya|aTE?AX1Vmc!x-wlwd1SI<*41P=dT4NbalFjsMB7FM~9bwwH+6p)cekF zKZsY47dSy1hGEH^qrP7(&K)f$H_VUPHm(I6x4gEmJ`OtPFhj{jQ;W%;34C0wwlQoL zk;jT_pTC;JlaD*$L)rCatI|l2k;NKb^SX4b^o+`at4Ir8l2qO7)}0mD9=%_t zq5X!RbSQd5{Qi1*ESBl$*|C+ZBKq(v(H7uu*tnTuCiSL1pU`I1X%XwuM><}~uP8Rc zxYZLxhnZDIt6J=_;q7~7UecD0@*q)+%BtiC-{f)k)(gm(#3}0>ji$BNB|_CrD0=p! zmH7JJbw&4%ByR_`TyO7z|BXr zPPjb%7jlp{S8+HqUI(JC+H1k68u zZNlCf0i`jeWV^s3w%G^QkEB$<>L|ZR(EM3D@p%$kzBosDx(!UgE|ZbHZLh&==*XTu z8?Nq7=7qC;3!OyX@qUaOCz+E?BiIAk}r`@Wf1+ zHHTq{*d2YgKOUQDl}3J#6#{_bOrAe9CE^}s3SugLS6(7&5$JW$Lej`CY#h^4tqdQ7 zJGX*F?Fa*6@~RrJcjP=FfUkor@!JVQE)|X1;fWIQ?LM_!xvqr}hDEJNV)H|oZ*nX- z5lfNEAr{-Nk21iN;CQ1+ zL3%lxJmf?{G-uaoi*G|4=+2LyX*s1fXbN;i1J@IIv17iYb)|zhfE_jC3&QtAhY13< z)f5tOrluqyrw`&zSn0y?BK_`6pQa}tO{;0?iM;7q@(dW+`kUI6TS*v8kSg*$YXa07T_>oq|{SBvlnu>WCfx{prMNJ(?WW zA4U$$0UiWvNH0!x@>)|o-y(mK^Z>Q>@-zGPO0_4=NDh`uG&xx4rHFZXk@Vuo;4G`B zbz@P>8D>35`JpT84d=PWAAR;C%=m1W*+GoXFm<5*4#8djEoB%=T4{vM6uY1em_L{& zkRuR&9f@Z^TsLr6@a>{=YFiddNCFhTurI5;0=6UOgH=r5G# zX?T7w_)ByTg}6s5Hp{W3d&!i5ym-nk13BdE7`1CGU&>DuyRv6}>|36CITC!GXg+eA zh0-o(*e{8a;DDl0AJwAtfe>9e8g{U01|ZNDh68${tW+|`tcbZ5rY?ici9qHz$7rY1 z3m2DP%BGP207spVCN;?^(P#nBC;Njr^H0kyo##6tZ+TvQ60%n_OzC(0ilNW`!MT-M zz;bygB=8Tf9(?Q+^KlS1wu5DQtTX-lFn;zrC5FhiiGjXDeDvtQ_}^3_21lOmI01yM zPY%!ZGX$TcvT3kr%XlRaH&lo6QJ2o}O}F7--#eWVV6-obvV6`BzC4iXFN-%K^`4Z$ z;Y7?z+jqq9xuG&B*svMY8Tw`ue}ubtAlDOe&or7_6{ z`dBY)&oB@=+z zNbk?WVA76}4$)=Q+85FJ9(Zy^e*}Ua@WK_oH9+T2lG=@44MdE8fEm7`>gWorSu3WX zOdV&IRLGHvLX$#N()Qz-R@_5A#E>)8azHTN!S#8pDZZP@QZLO%$Kj#;77c?GxXW~! z{0o>ixcp}u0$7hX14n%e4gLdwx&M_p6yd?6H-i9lBFYl!U9+7f1kee1zbX94c)84drU!$RB+dpR^8F3g=W_zAqsA|%&7H{{F> z!*7?Dc7??`)M1F?Yk9-P*}Tc^Qw*^s99@S{>AmvdgJ)PB%`e(t*w><||At7kJ-&n? zDd_oH+Twmc<>%cDqhrjrG&7LtQfst%vTLo*gDh+pD6fx#r}^`+;+Isa<_pIuI1h(p zr3jY_coUGTi%S0tHQb=?f#lEnRR^=+CTF^AdiRhiBi4;y=E(GaE`OHYFfHQ$HUsKhYX8AIO z_PnwoIpWc*&NuUEkyPSusEkh;tz>ZLK;xy%8eDdJi{1O9QO{s`jrUkV@DkDoSu?3p zMSq%SimCe*dP|QO6ZWM#yBH*uyvE_&Q zhz_YRNC`6uhW-t_fA;^n5|~84rag+y*JpZ=u2C`bR+)a{M@4Ne{X%4)xzPTw!Zt~Z zZsb(@)gN9hlVov|Of>lq?VHk+OXC%R@oeEPBcGf#^i9{cJ%Q#RKw2`lsW!$QfyV`} z*)|IjKiZR6te6Ypo@5xJ1!UJyE~B#(NiN_~T8c%8NQ@l#^3Hs;Al~{hB@P{apA8{r zBqu%*U5&g;MdwCqM8cRI$MauKz6cs~e3|;Z0#)gUm9zYfdWoNMrfeZ+4eF3XN1ZED z?yxZn%Klgy9vW27&dCGFF?`hpy>=c=`G!SFdG8bQLENTAhN!9cAnuyj=FSm+-3?7) zXyg<1w?%x1@&)A}k+xMQn!v_iLk;+w?Qmkbgb)jXHstPPD0%$Ul|^ z!H;ueEcN&Ue{AwVH>~Wg1?#(nCB*n`9wZexunE7O1w_9%^Ecl-wd-IEy*U&%J?31x z1DQIMKSdr~kIYH6o@&)?XNn%dvTTn^3r(6lfd@ic8p-Q0uKeqpAV&qySIFK(IpVv$h}$*HNp1*?M@FkmknfGAntUQ}m2zIZ zB#+zS5tM=RO)B3?U@EGLlH8=mlcyR-H}O3bQmud_ycY^<7SGxa-O4u@^LB0pG97gY zDm^VoCgF4HO)nVf`y9>m`V4xrl;^M`F)yY+Z1o z_N`^T#U(aQBTlc8kA&i3;jce;yK3$`@v8f4CM}pIyhSnBuw(lZPF5MyZT=XM7sP0D z{0k}uq7M4>k&XbS?u>4OQf#?|mfXV3-b%2EL0Dujk8lwuEwbkjL+1B{+vLPZi+C8Z z!$WhV7rx3*jQz|vgGkSXV&`sb<7fOS)SMo~WONHVBQg zdsPPR`_p0W>-id_hSxh&wM|UeXs}{1a{<7>BYxGrO{0)26xjF!3I<~{44K5izBM@C z&WX@=IYXs-*P0^vFFDNov`1co@KhzZkhz&}4q#ugg0i>}RA|LhwBXgD^qY!anLLeR z#5@v^7tLju3mGa@E$QR1_zFf7{8Ss{&`C~@gh0A5Tf4+!uM+lWda5VW_+fw>f{L}A z2os_n8B37yGICEu@k>jEL{znd_6-tlVat(|SccI|$`$Qgv9Z#lI*h$#c{qJmiaCFe z+aIkBgKObv8wUyKBn8DZJGMVPrC;!dE-qn`FwOxaAnJb_A)v7&SM}MhFdmnQy=622 zoStySPcH;No4=x^4i0f#n2FOyb-gJmc&T&lA8|q?4hOUqLUO1uhfW6J8{_V#5A|3^ z)xywcrh&HupUFFMe_8`xAYCSrC+K-)Bn9_%=9ap)5~9Fc4f6?EL^~Yfo{oe#s1d6WLLB?TeGFI@5A4_lsTBwE!Mu|dF`=0$mRLfFbd<3Te zAaL^=9zz@vLCNqzbg`e?kUW%wxHArYjTTxI_`6FlXyaQ_vckkcG$h46RrDao<^hx$ z8xHQ={#m2gfIax%E++}e>V2f3#kp0VdY>L9dee?6%!g}-_iPZFFYwLhGEY<7eYc_~@+4fw_?XGEJx|X}XA-l&39)tVIGf8f zqirD0j9d>OuPb>&8ly5Mg!ji9UT<`d=g)H%$=J6YI!Q#-c`|tUnY#1jp(4K4AI;GB zyOsX7#GBpXIHO-)O=ogKrN~dzqS)0-{}$E7q1%!x*-+8gJe1&iqQ9!F9qiY&^)fm`{-n9bS;8lIpc%Om zm_={*$D!|eQ<}uUNvf(TgGOZAAn3c;bmlS6Je%_`reOJC!9IZvIF#Tcda{Z-1L44x zCdx<$gtQ+?d*Ap{mtiWUU0vUMTBB5~qUslB*Ur=^RvZx&Ahz2vHaRTXvyEi|Y%`Ue zdQ{Y}`E19=0|RQ$TF4G+&*EhHyZ~*t{hROd=yz=HDhH#FzvOb>0A?4jwrAc3d5x!h z-+f>#QU&Mhz@+=RpUhdfLc}!@;_>$u9W0D+$8oHvHuVupL}HZzBiBIaA97ziaSMv^ zdvH{UVq|V#iTY4Sm|tKRtin1<8G<2ozfH|q0`zhn{VW?)DTvn|+uYcAYxI_CZt3e6 z&LnYJd|cMrGn_ZiURKjscv?~w>5iUP9HeLiKD*RaLa69CGWTJ{6HnvVw&xBn#k(cV zGTVHu9`0K{BQp>$wQEu38u=FFTb^TcG*4p^lEZBk;>>SgnVfpD)v`V*y>+ zS@o6TGgb@r#jZigl_L6~T}fuM59Mz+8?fyI&~MkpB^s>L#-L}Y-~1Fg^$d9VF6XM9 z?1C##`15^F!yx=!2{o%l^tLtlNa)InlRx{xdTiR=Lr`a#JqzEu8tu0rD|9=evece? z@JVp_nq=HL5XJWTWMVY*`DmB1Tp>(0ay_5V!gd6IJJel^SG2FCUgaDl4ae37Rnvu= zwBde|ef|0B#*nt9p*PocFS21hHnLK`urq1-DAwQyz6W{3&m5!u3(Ee|X+cxeHTh>- zN1X8~;FD70%3I@8!|Gi`@#zD!&+6^;rp`NdqJ&88@niTb54tY2S!)+HSGQQC6;gTe zdV(f0dY#)McUB$9AdF#@uUs0;p*C2oXOjwz@Bzz5S9aWV(PHdnResW9=v5}cpT-cj zc3ukMlf<0x41bf8;(mA-3*o`KAh%7<3i(RSY=DY_f})g-%^VsM5<;yApDYG!=+uz1 zq`(G?ZmYun0ioAA%;x2cvPJ@Us9{lYIn$20fyU@JzOO6M+io(Pt583HqeFra{^Kw( zN?=qJh_LrRAh+9$v(_I4pP2YwHnpjr4$`RaC*+?tuCs=f-j4kOpB!H`M|)Itv@FPM zIy04Ab!;!Ic@O@loVs`S0s6MXxr;9>;KgG~;kfHdjhvXtW0^gbOWW%Av0+Yx^7EzF z&M`6}V2qfWz1N87S9hw@$5C{Xh&Hfqs|%4V`cN{zPCLP(_ck*MKHV+V`6NqHNd#99 zTvZj09G`E@Uu{*r6fIQMopgav5uL5)uX?y{9wv4?TG00Ut#_bj74(9QO-p?)T|rG( zAf5YG6%aleg7O{0v3tva75IS)zKvYZi*DRy-tfO8!mv!gy5f=SM`VsQ;)lTp`s@WzDMJ_c(W~KXI4>D zG)AXU3GX5>EF%>)_39a@wlX29Td&pcc^mNCOOJ4@$S*`1<1T_!osM`~>35EsmLj^w zP``e$4!fwje^smX2{+T`Rm0}57!@vF&@UP7rK&LCQD!kv7O`=8BGAY4s9Xq(i=jEi zcKrCVxLQ1iHhD{k7&NHF<&3F#rFV^GEz2=k>`tItSo)>Z(zlu8g3j#b@)NIbm{#Ra zq_HyxH7+@iUxEcEU&UwCX2KB=Cqb?!FjwvF$7iKT3T55yZ9W9I`?OW1B}X<)yL=UE z49_3?G6i!%N7-y{IERXPBDtVsTX8|j-dbGz!$PD)Q10G4cdDVnW7B4QKkfZQFdtLXbu20RwT35>FZkfR!=dj3=G;tM;ul}M z$?XN*kZm~$AMnR?U8YA;{I;`Ns#}~YB8UttHj_I)u&ER}$f3FB~(yTD?AV+sT?D#UuF`Wy4KHYn(*%fd@}jnJnA}Vr`;uC2fe~>P6n_ zi-?)bfINZgjv z`w+8#-eT}`j&s}vAZB}&{kE_vPf@(d+9vwCRFCbzcDKeTuD zuncy+o7TZ%`OJI!lsAvdW01k*{9d+W+jdovH9pGf84wVh>mP(OjT0+ieny3-JWFNsDRc}Z^ zQ3~V|Vht*t)%D`dR2vs~XV`-Fr@gY!5zcXXUfBXJmCXRHsjrg!@>*?!u zgbwdsX;zt3ENmsgM}x5y4nC06Q+KZi4-{H=3b6HLWaKG_FnPhpmfq@(cTOznZT$FB z#B23oYQkbVA@LE8H$Sa)F_3AhpEO^CFQqRxVFx7+9)?cYG>&hUc>58{Msdb6|Om{qSc#N|3$RH=qRP)TlS8tB8ot=nyS%t_Zh*Vee+Io zTH~PJv=pIOhUZLJy5>U>q5G@ZH>n@QslJcb9;uNupC<-?V%mo2XkdW0Cdpx@dxi2! zMewvxyjo$yb!lCZEWYZ~hNEhFaDQ|U^PghMX$NO_Ay&orNnUYpJ;;JT(OAm)O#2(* zJM8Ohd;oaqa5p*_C54I6ttZ)D|*%gQlCg^wG8{^OZSV}OB1fd9N|$Rvcm~mfgIQ)Os3gUAaOR~lrT>i zrvAxFlOv&(c+cRW(&V-P9>ax$ub!45DIE^9Y?Oj#*`LJXXhYMxZ;{F$K%cfNjX~`UK zieL(b8ZYnmAhPowmRB$rzkW5ri7DFaT-0c-J+>Jq0iaSmJ}ffa)u!}BbQ-6ZNPKio zAarD2!BDO1SAFNDqyVgHh~^)F?y7OVA9?xQiU&VPFwa^=>cA(n6TkjCS9_qUC}@gJ^bX#}0N*zF6haYUbn!$}GwN&99>l{Q(R$|vW*K@WE?n;V!BQoh#k1Gm9x!q052{m*!r*l3KY#$R3 z`Yce#Et0sc4|+9TGi$7)uI;cJ#dYL>XmxegHyYgLm*UcMlm6Yi&-Mll5XhbMNMR?yBhflr!$($ddV58utzyTogUs zrN{}SHq-i`B&1dT(3-OV`>j6+IxXG=f~60k+#>9*4hh#5_#vaw3B;A{uBwep=dk@< z;`a}07(+hacPtLVb-X$__C%+cQpn5^j5RO^+&L1HU!-5Jv^e`JTPp&u0=t$n(^{-+ zhVtibLv0{{IEh0K1LB4UoDU9ap5%RNy?ivA1@O|iye`MgmTgN_hW?+8A%1+gT@k-x zJ}TBR8GFRU6l~}}rhpCN*tXH&pHWr}%#R#s3e&lRNy@crao%a1shod@t+H~1^3r-z z+}rf-s{k!tL-qoW07yN6s%+`FBgiH9-c0lY}~HG0Ck1Y zWHmp_4hOnvZg0auoiOyPrXj?S5Nd+~#H38TKSR$7IEFpZ z1yLpx4S+I(lr&d}<^NJ!{AZEyRy=&@1x5lkU!(u=@afV8M?x0Mx4m9i3<^RzoOJ$F z`rIVHBmu`$r(iRyNV)HJ-<@O@VzUC}40SPZPtQkI%Js(`-hb{n0PcYneJf5@VBwQ# zBt!~E+T?-Z(9t1>(H-qJ!*pAhSUW13D}4OZrVTqI~a~Nm^1?KE!V{O zw=4?ln!`b=MU6Occs$>Kubck;y*`*-JG~)d;#Ldw`Vb-5?ZpZWuyL*lLFFs{T7-^i&Y0kJL|N9~Z zUSEjcH^*tYnnW)3|Dllk_ZRfPPxhvDm;~`^!P^LNBVK8_4-f9?{2sGbH|$;yPV|~U zzYM5k-%j{*h#09UL;L*JKksz9u#eDVxU6@NAMr`BUSb;tg3!9>9k5A@%ZpWr82J4! DGJrsh literal 0 HcmV?d00001 diff --git a/backups/backup_automatic_2025-09-02T02-46-17-030Z.sql b/backups/backup_automatic_2025-09-02T02-46-17-030Z.sql new file mode 100644 index 0000000..1f08cb8 --- /dev/null +++ b/backups/backup_automatic_2025-09-02T02-46-17-030Z.sql @@ -0,0 +1,2970 @@ +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 16.9 (84ade85) +-- Dumped by pg_dump version 16.9 + +-- Started on 2025-09-02 02:46:17 UTC + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +DROP DATABASE IF EXISTS neondb; +-- +-- TOC entry 3750 (class 1262 OID 16389) +-- Name: neondb; Type: DATABASE; Schema: -; Owner: neondb_owner +-- + +CREATE DATABASE neondb WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'C.UTF-8'; + + +ALTER DATABASE neondb OWNER TO neondb_owner; + +\connect neondb + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- TOC entry 216 (class 1259 OID 24577) +-- Name: calendar_events; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.calendar_events ( + id integer NOT NULL, + title text NOT NULL, + description text, + user_id integer NOT NULL, + store_id integer NOT NULL, + start_date timestamp without time zone NOT NULL, + end_date timestamp without time zone NOT NULL, + is_all_day boolean DEFAULT false, + type text DEFAULT 'event'::text, + metadata jsonb, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.calendar_events OWNER TO neondb_owner; + +-- +-- TOC entry 215 (class 1259 OID 24576) +-- Name: calendar_events_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.calendar_events_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.calendar_events_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3752 (class 0 OID 0) +-- Dependencies: 215 +-- Name: calendar_events_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.calendar_events_id_seq OWNED BY public.calendar_events.id; + + +-- +-- TOC entry 218 (class 1259 OID 24590) +-- Name: client_orders; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.client_orders ( + id integer NOT NULL, + order_number text NOT NULL, + customer_id integer NOT NULL, + store_id integer NOT NULL, + user_id integer NOT NULL, + status text DEFAULT 'pending'::text NOT NULL, + total_amount numeric(10,2), + order_date timestamp without time zone DEFAULT now() NOT NULL, + notes text, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.client_orders OWNER TO neondb_owner; + +-- +-- TOC entry 217 (class 1259 OID 24589) +-- Name: client_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.client_orders_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.client_orders_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3753 (class 0 OID 0) +-- Dependencies: 217 +-- Name: client_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.client_orders_id_seq OWNED BY public.client_orders.id; + + +-- +-- TOC entry 220 (class 1259 OID 24605) +-- Name: command_items; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.command_items ( + id integer NOT NULL, + command_id integer NOT NULL, + product_name text NOT NULL, + product_code text, + quantity integer NOT NULL, + unit_price numeric(10,2), + total_price numeric(10,2), + expiry_date timestamp without time zone +); + + +ALTER TABLE public.command_items OWNER TO neondb_owner; + +-- +-- TOC entry 219 (class 1259 OID 24604) +-- Name: command_items_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.command_items_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.command_items_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3754 (class 0 OID 0) +-- Dependencies: 219 +-- Name: command_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.command_items_id_seq OWNED BY public.command_items.id; + + +-- +-- TOC entry 222 (class 1259 OID 24614) +-- Name: commands; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.commands ( + id integer NOT NULL, + command_number text NOT NULL, + supplier_id integer NOT NULL, + store_id integer NOT NULL, + user_id integer NOT NULL, + status text DEFAULT 'pending'::text NOT NULL, + total_amount numeric(10,2), + notes text, + order_date timestamp without time zone DEFAULT now() NOT NULL, + expected_delivery_date timestamp without time zone, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.commands OWNER TO neondb_owner; + +-- +-- TOC entry 221 (class 1259 OID 24613) +-- Name: commands_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.commands_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.commands_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3755 (class 0 OID 0) +-- Dependencies: 221 +-- Name: commands_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.commands_id_seq OWNED BY public.commands.id; + + +-- +-- TOC entry 247 (class 1259 OID 57526) +-- Name: customer_orders; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.customer_orders ( + id integer NOT NULL, + order_taker character varying NOT NULL, + customer_name character varying NOT NULL, + customer_phone character varying NOT NULL, + customer_email character varying, + product_designation text NOT NULL, + product_reference character varying, + gencode character varying NOT NULL, + quantity integer DEFAULT 1 NOT NULL, + supplier_id integer NOT NULL, + status character varying DEFAULT 'En attente de Commande'::character varying NOT NULL, + deposit numeric(10,2) DEFAULT 0.00, + is_promotional_price boolean DEFAULT false, + customer_notified boolean DEFAULT false, + notes text, + group_id integer NOT NULL, + created_by character varying NOT NULL, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.customer_orders OWNER TO neondb_owner; + +-- +-- TOC entry 246 (class 1259 OID 57525) +-- Name: customer_orders_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.customer_orders_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.customer_orders_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3756 (class 0 OID 0) +-- Dependencies: 246 +-- Name: customer_orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.customer_orders_id_seq OWNED BY public.customer_orders.id; + + +-- +-- TOC entry 224 (class 1259 OID 24629) +-- Name: customers; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.customers ( + id integer NOT NULL, + first_name text NOT NULL, + last_name text NOT NULL, + email text, + phone text, + address text, + store_id integer NOT NULL, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.customers OWNER TO neondb_owner; + +-- +-- TOC entry 223 (class 1259 OID 24628) +-- Name: customers_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.customers_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.customers_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3757 (class 0 OID 0) +-- Dependencies: 223 +-- Name: customers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.customers_id_seq OWNED BY public.customers.id; + + +-- +-- TOC entry 268 (class 1259 OID 2342913) +-- Name: dashboard_messages; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.dashboard_messages ( + id integer NOT NULL, + title character varying(255) NOT NULL, + content text NOT NULL, + type character varying(50) DEFAULT 'info'::character varying NOT NULL, + store_id integer, + created_by character varying(255) NOT NULL, + created_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.dashboard_messages OWNER TO neondb_owner; + +-- +-- TOC entry 267 (class 1259 OID 2342912) +-- Name: dashboard_messages_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.dashboard_messages_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.dashboard_messages_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3758 (class 0 OID 0) +-- Dependencies: 267 +-- Name: dashboard_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.dashboard_messages_id_seq OWNED BY public.dashboard_messages.id; + + +-- +-- TOC entry 262 (class 1259 OID 819214) +-- Name: database_backups; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.database_backups ( + id character varying(255) NOT NULL, + filename character varying(255) NOT NULL, + description text, + size bigint DEFAULT 0, + created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + created_by character varying(255) NOT NULL, + tables_count integer DEFAULT 0, + status character varying(50) DEFAULT 'creating'::character varying, + backup_type character varying(10) DEFAULT 'manual'::character varying +); + + +ALTER TABLE public.database_backups OWNER TO neondb_owner; + +-- +-- TOC entry 259 (class 1259 OID 73734) +-- Name: deliveries; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.deliveries ( + id integer NOT NULL, + order_id integer, + supplier_id integer NOT NULL, + group_id integer NOT NULL, + scheduled_date date NOT NULL, + delivered_date timestamp without time zone, + quantity integer NOT NULL, + unit character varying NOT NULL, + status character varying DEFAULT 'pending'::character varying NOT NULL, + notes text, + bl_number character varying, + bl_amount numeric(10,2), + invoice_reference character varying, + invoice_amount numeric(10,2), + reconciled boolean DEFAULT false, + validated_at timestamp without time zone, + created_by character varying NOT NULL, + created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT deliveries_status_check CHECK (((status)::text = ANY ((ARRAY['pending'::character varying, 'planned'::character varying, 'delivered'::character varying, 'cancelled'::character varying])::text[]))) +); + + +ALTER TABLE public.deliveries OWNER TO neondb_owner; + +-- +-- TOC entry 258 (class 1259 OID 73733) +-- Name: deliveries_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.deliveries_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.deliveries_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3759 (class 0 OID 0) +-- Dependencies: 258 +-- Name: deliveries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.deliveries_id_seq OWNED BY public.deliveries.id; + + +-- +-- TOC entry 226 (class 1259 OID 24654) +-- Name: delivery_items; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.delivery_items ( + id integer NOT NULL, + delivery_id integer NOT NULL, + command_item_id integer, + product_name text NOT NULL, + quantity_ordered integer NOT NULL, + quantity_delivered integer NOT NULL, + quantity_damaged integer DEFAULT 0, + notes text +); + + +ALTER TABLE public.delivery_items OWNER TO neondb_owner; + +-- +-- TOC entry 225 (class 1259 OID 24653) +-- Name: delivery_items_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.delivery_items_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.delivery_items_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3760 (class 0 OID 0) +-- Dependencies: 225 +-- Name: delivery_items_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.delivery_items_id_seq OWNED BY public.delivery_items.id; + + +-- +-- TOC entry 249 (class 1259 OID 57542) +-- Name: dlc_products; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.dlc_products ( + id integer NOT NULL, + name character varying NOT NULL, + gencode character varying, + dlc_date date, + quantity integer, + store_id integer, + created_at timestamp without time zone DEFAULT now(), + group_id integer, + created_by character varying, + status character varying DEFAULT 'active'::character varying, + validated_by character varying, + expiry_date date, + product_code character varying(255), + description text, + supplier_id integer, + product_name character varying(255), + date_type character varying(50) DEFAULT 'DLC'::character varying, + unit character varying(50) DEFAULT 'unité'::character varying, + location character varying(255) DEFAULT 'Magasin'::character varying, + alert_threshold integer DEFAULT 15, + notes text, + updated_at timestamp without time zone DEFAULT now(), + validated_at timestamp without time zone, + stock_epuise boolean DEFAULT false NOT NULL, + stock_epuise_by character varying(255), + stock_epuise_at timestamp without time zone +); + + +ALTER TABLE public.dlc_products OWNER TO neondb_owner; + +-- +-- TOC entry 3761 (class 0 OID 0) +-- Dependencies: 249 +-- Name: COLUMN dlc_products.stock_epuise; Type: COMMENT; Schema: public; Owner: neondb_owner +-- + +COMMENT ON COLUMN public.dlc_products.stock_epuise IS 'Indique si le produit est marqué comme stock épuisé (différent de périmé)'; + + +-- +-- TOC entry 3762 (class 0 OID 0) +-- Dependencies: 249 +-- Name: COLUMN dlc_products.stock_epuise_by; Type: COMMENT; Schema: public; Owner: neondb_owner +-- + +COMMENT ON COLUMN public.dlc_products.stock_epuise_by IS 'ID de l''utilisateur qui a marqué le produit comme stock épuisé'; + + +-- +-- TOC entry 3763 (class 0 OID 0) +-- Dependencies: 249 +-- Name: COLUMN dlc_products.stock_epuise_at; Type: COMMENT; Schema: public; Owner: neondb_owner +-- + +COMMENT ON COLUMN public.dlc_products.stock_epuise_at IS 'Date et heure de marquage du stock épuisé'; + + +-- +-- TOC entry 248 (class 1259 OID 57541) +-- Name: dlc_products_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.dlc_products_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.dlc_products_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3764 (class 0 OID 0) +-- Dependencies: 248 +-- Name: dlc_products_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.dlc_products_id_seq OWNED BY public.dlc_products.id; + + +-- +-- TOC entry 237 (class 1259 OID 57451) +-- Name: groups; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.groups ( + id integer NOT NULL, + name character varying NOT NULL, + color character varying DEFAULT '#3b82f6'::character varying, + address text, + phone character varying, + email character varying, + nocodb_config_id integer, + nocodb_table_id character varying, + nocodb_table_name character varying, + invoice_column_name character varying DEFAULT 'Ref Facture'::character varying, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now(), + nocodb_bl_column_name character varying DEFAULT 'Numéro de BL'::character varying, + nocodb_amount_column_name character varying DEFAULT 'Montant HT'::character varying, + nocodb_supplier_column_name character varying DEFAULT 'Fournisseur'::character varying, + webhook_url character varying DEFAULT ''::character varying +); + + +ALTER TABLE public.groups OWNER TO neondb_owner; + +-- +-- TOC entry 236 (class 1259 OID 57450) +-- Name: groups_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.groups_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.groups_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3765 (class 0 OID 0) +-- Dependencies: 236 +-- Name: groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.groups_id_seq OWNED BY public.groups.id; + + +-- +-- TOC entry 266 (class 1259 OID 2310146) +-- Name: invoice_verification_cache; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.invoice_verification_cache ( + id integer NOT NULL, + cache_key character varying(255) NOT NULL, + group_id integer NOT NULL, + invoice_reference character varying(100) NOT NULL, + delivery_id integer, + verification_result jsonb NOT NULL, + expires_at timestamp without time zone NOT NULL, + created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + supplier_name character varying(255), + "exists" boolean DEFAULT false NOT NULL, + match_type character varying(50) DEFAULT 'none'::character varying NOT NULL, + error_message text, + cache_hit boolean DEFAULT false, + api_call_time integer, + updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + is_reconciled boolean DEFAULT false +); + + +ALTER TABLE public.invoice_verification_cache OWNER TO neondb_owner; + +-- +-- TOC entry 265 (class 1259 OID 2310145) +-- Name: invoice_verification_cache_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.invoice_verification_cache_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.invoice_verification_cache_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3766 (class 0 OID 0) +-- Dependencies: 265 +-- Name: invoice_verification_cache_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.invoice_verification_cache_id_seq OWNED BY public.invoice_verification_cache.id; + + +-- +-- TOC entry 264 (class 1259 OID 2285569) +-- Name: invoice_verifications; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.invoice_verifications ( + id integer NOT NULL, + delivery_id integer NOT NULL, + group_id integer NOT NULL, + invoice_reference character varying(255) NOT NULL, + supplier_name character varying(255), + "exists" boolean NOT NULL, + match_type character varying(50), + verified_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP, + is_valid boolean DEFAULT true, + last_checked_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP +); + + +ALTER TABLE public.invoice_verifications OWNER TO neondb_owner; + +-- +-- TOC entry 263 (class 1259 OID 2285568) +-- Name: invoice_verifications_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.invoice_verifications_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.invoice_verifications_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3767 (class 0 OID 0) +-- Dependencies: 263 +-- Name: invoice_verifications_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.invoice_verifications_id_seq OWNED BY public.invoice_verifications.id; + + +-- +-- TOC entry 228 (class 1259 OID 24677) +-- Name: invoices; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.invoices ( + id integer NOT NULL, + invoice_number text NOT NULL, + command_id integer, + delivery_id integer, + store_id integer NOT NULL, + user_id integer NOT NULL, + type text NOT NULL, + total_amount numeric(10,2), + status text DEFAULT 'draft'::text NOT NULL, + issue_date timestamp without time zone DEFAULT now() NOT NULL, + due_date timestamp without time zone, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.invoices OWNER TO neondb_owner; + +-- +-- TOC entry 227 (class 1259 OID 24676) +-- Name: invoices_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.invoices_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.invoices_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3768 (class 0 OID 0) +-- Dependencies: 227 +-- Name: invoices_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; + + +-- +-- TOC entry 239 (class 1259 OID 57464) +-- Name: nocodb_config; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.nocodb_config ( + id integer NOT NULL, + name character varying NOT NULL, + base_url character varying NOT NULL, + project_id character varying NOT NULL, + api_token character varying NOT NULL, + description text, + is_active boolean DEFAULT true, + created_by character varying NOT NULL, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.nocodb_config OWNER TO neondb_owner; + +-- +-- TOC entry 238 (class 1259 OID 57463) +-- Name: nocodb_config_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.nocodb_config_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.nocodb_config_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3769 (class 0 OID 0) +-- Dependencies: 238 +-- Name: nocodb_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.nocodb_config_id_seq OWNED BY public.nocodb_config.id; + + +-- +-- TOC entry 243 (class 1259 OID 57488) +-- Name: orders; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.orders ( + id integer NOT NULL, + supplier_id integer NOT NULL, + group_id integer NOT NULL, + planned_date date NOT NULL, + quantity integer, + unit character varying, + status character varying DEFAULT 'pending'::character varying NOT NULL, + notes text, + created_by character varying NOT NULL, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now(), + CONSTRAINT orders_status_check CHECK (((status)::text = ANY ((ARRAY['pending'::character varying, 'planned'::character varying, 'delivered'::character varying])::text[]))) +); + + +ALTER TABLE public.orders OWNER TO neondb_owner; + +-- +-- TOC entry 242 (class 1259 OID 57487) +-- Name: orders_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.orders_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.orders_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3770 (class 0 OID 0) +-- Dependencies: 242 +-- Name: orders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.orders_id_seq OWNED BY public.orders.id; + + +-- +-- TOC entry 255 (class 1259 OID 57581) +-- Name: permissions; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.permissions ( + id integer NOT NULL, + name character varying NOT NULL, + display_name character varying NOT NULL, + description text, + category character varying NOT NULL, + action character varying NOT NULL, + resource character varying NOT NULL, + is_system boolean DEFAULT true, + created_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.permissions OWNER TO neondb_owner; + +-- +-- TOC entry 254 (class 1259 OID 57580) +-- Name: permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.permissions_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.permissions_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3771 (class 0 OID 0) +-- Dependencies: 254 +-- Name: permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.permissions_id_seq OWNED BY public.permissions.id; + + +-- +-- TOC entry 245 (class 1259 OID 57513) +-- Name: publicities; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.publicities ( + id integer NOT NULL, + pub_number character varying NOT NULL, + designation text NOT NULL, + title character varying, + description text, + start_date date NOT NULL, + end_date date NOT NULL, + year integer NOT NULL, + created_by character varying NOT NULL, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.publicities OWNER TO neondb_owner; + +-- +-- TOC entry 244 (class 1259 OID 57512) +-- Name: publicities_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.publicities_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.publicities_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3772 (class 0 OID 0) +-- Dependencies: 244 +-- Name: publicities_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.publicities_id_seq OWNED BY public.publicities.id; + + +-- +-- TOC entry 257 (class 1259 OID 57615) +-- Name: publicity_participations; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.publicity_participations ( + publicity_id integer NOT NULL, + group_id integer NOT NULL, + created_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.publicity_participations OWNER TO neondb_owner; + +-- +-- TOC entry 256 (class 1259 OID 57609) +-- Name: role_permissions; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.role_permissions ( + role_id integer NOT NULL, + permission_id integer NOT NULL, + created_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.role_permissions OWNER TO neondb_owner; + +-- +-- TOC entry 253 (class 1259 OID 57565) +-- Name: roles; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.roles ( + id integer NOT NULL, + name character varying NOT NULL, + display_name character varying NOT NULL, + description text, + color character varying DEFAULT '#6b7280'::character varying, + is_system boolean DEFAULT false, + is_active boolean DEFAULT true, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.roles OWNER TO neondb_owner; + +-- +-- TOC entry 252 (class 1259 OID 57564) +-- Name: roles_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.roles_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.roles_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3773 (class 0 OID 0) +-- Dependencies: 252 +-- Name: roles_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.roles_id_seq OWNED BY public.roles.id; + + +-- +-- TOC entry 230 (class 1259 OID 24692) +-- Name: sav_tickets; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.sav_tickets ( + id integer NOT NULL, + ticket_number text NOT NULL, + customer_id integer, + store_id integer NOT NULL, + user_id integer NOT NULL, + assigned_user_id integer, + title text NOT NULL, + description text NOT NULL, + status text DEFAULT 'open'::text NOT NULL, + priority text DEFAULT 'normal'::text NOT NULL, + category text, + resolution text, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.sav_tickets OWNER TO neondb_owner; + +-- +-- TOC entry 229 (class 1259 OID 24691) +-- Name: sav_tickets_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.sav_tickets_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.sav_tickets_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3774 (class 0 OID 0) +-- Dependencies: 229 +-- Name: sav_tickets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.sav_tickets_id_seq OWNED BY public.sav_tickets.id; + + +-- +-- TOC entry 233 (class 1259 OID 32770) +-- Name: session; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.session ( + sid character varying NOT NULL, + sess json NOT NULL, + expire timestamp(6) without time zone NOT NULL +); + + +ALTER TABLE public.session OWNER TO neondb_owner; + +-- +-- TOC entry 234 (class 1259 OID 57427) +-- Name: sessions; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.sessions ( + sid character varying NOT NULL, + sess jsonb NOT NULL, + expire timestamp without time zone NOT NULL +); + + +ALTER TABLE public.sessions OWNER TO neondb_owner; + +-- +-- TOC entry 232 (class 1259 OID 24707) +-- Name: stores; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.stores ( + id integer NOT NULL, + name text NOT NULL, + address text, + phone text, + email text, + is_active boolean DEFAULT true NOT NULL, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.stores OWNER TO neondb_owner; + +-- +-- TOC entry 231 (class 1259 OID 24706) +-- Name: stores_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.stores_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.stores_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3775 (class 0 OID 0) +-- Dependencies: 231 +-- Name: stores_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.stores_id_seq OWNED BY public.stores.id; + + +-- +-- TOC entry 241 (class 1259 OID 57476) +-- Name: suppliers; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.suppliers ( + id integer NOT NULL, + name character varying NOT NULL, + contact character varying, + phone character varying, + has_dlc boolean DEFAULT false, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now(), + automatic_reconciliation boolean DEFAULT false +); + + +ALTER TABLE public.suppliers OWNER TO neondb_owner; + +-- +-- TOC entry 240 (class 1259 OID 57475) +-- Name: suppliers_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.suppliers_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.suppliers_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3776 (class 0 OID 0) +-- Dependencies: 240 +-- Name: suppliers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.suppliers_id_seq OWNED BY public.suppliers.id; + + +-- +-- TOC entry 251 (class 1259 OID 57552) +-- Name: tasks; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.tasks ( + id integer NOT NULL, + title character varying NOT NULL, + description text, + assigned_to character varying, + due_date date, + priority character varying DEFAULT 'medium'::character varying, + status character varying DEFAULT 'todo'::character varying, + store_id integer, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now(), + created_by character varying, + group_id integer, + start_date timestamp without time zone, + completed_at timestamp without time zone, + completed_by character varying(255) +); + + +ALTER TABLE public.tasks OWNER TO neondb_owner; + +-- +-- TOC entry 250 (class 1259 OID 57551) +-- Name: tasks_id_seq; Type: SEQUENCE; Schema: public; Owner: neondb_owner +-- + +CREATE SEQUENCE public.tasks_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.tasks_id_seq OWNER TO neondb_owner; + +-- +-- TOC entry 3777 (class 0 OID 0) +-- Dependencies: 250 +-- Name: tasks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: neondb_owner +-- + +ALTER SEQUENCE public.tasks_id_seq OWNED BY public.tasks.id; + + +-- +-- TOC entry 261 (class 1259 OID 720923) +-- Name: user_groups; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.user_groups ( + user_id character varying(255) NOT NULL, + group_id integer NOT NULL, + assigned_by character varying(255), + assigned_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP +); + + +ALTER TABLE public.user_groups OWNER TO neondb_owner; + +-- +-- TOC entry 260 (class 1259 OID 720910) +-- Name: user_roles; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.user_roles ( + user_id character varying(255) NOT NULL, + role_id integer NOT NULL, + assigned_by character varying(255), + assigned_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP +); + + +ALTER TABLE public.user_roles OWNER TO neondb_owner; + +-- +-- TOC entry 235 (class 1259 OID 57435) +-- Name: users; Type: TABLE; Schema: public; Owner: neondb_owner +-- + +CREATE TABLE public.users ( + id character varying NOT NULL, + username character varying, + email character varying, + name character varying, + first_name character varying, + last_name character varying, + profile_image_url character varying, + password character varying, + role character varying DEFAULT 'employee'::character varying NOT NULL, + password_changed boolean DEFAULT false, + created_at timestamp without time zone DEFAULT now(), + updated_at timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.users OWNER TO neondb_owner; + +-- +-- TOC entry 3322 (class 2604 OID 24580) +-- Name: calendar_events id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.calendar_events ALTER COLUMN id SET DEFAULT nextval('public.calendar_events_id_seq'::regclass); + + +-- +-- TOC entry 3327 (class 2604 OID 24593) +-- Name: client_orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.client_orders ALTER COLUMN id SET DEFAULT nextval('public.client_orders_id_seq'::regclass); + + +-- +-- TOC entry 3332 (class 2604 OID 24608) +-- Name: command_items id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.command_items ALTER COLUMN id SET DEFAULT nextval('public.command_items_id_seq'::regclass); + + +-- +-- TOC entry 3333 (class 2604 OID 24617) +-- Name: commands id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.commands ALTER COLUMN id SET DEFAULT nextval('public.commands_id_seq'::regclass); + + +-- +-- TOC entry 3386 (class 2604 OID 57529) +-- Name: customer_orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.customer_orders ALTER COLUMN id SET DEFAULT nextval('public.customer_orders_id_seq'::regclass); + + +-- +-- TOC entry 3338 (class 2604 OID 24632) +-- Name: customers id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.customers ALTER COLUMN id SET DEFAULT nextval('public.customers_id_seq'::regclass); + + +-- +-- TOC entry 3442 (class 2604 OID 2342916) +-- Name: dashboard_messages id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.dashboard_messages ALTER COLUMN id SET DEFAULT nextval('public.dashboard_messages_id_seq'::regclass); + + +-- +-- TOC entry 3419 (class 2604 OID 73737) +-- Name: deliveries id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.deliveries ALTER COLUMN id SET DEFAULT nextval('public.deliveries_id_seq'::regclass); + + +-- +-- TOC entry 3341 (class 2604 OID 24657) +-- Name: delivery_items id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.delivery_items ALTER COLUMN id SET DEFAULT nextval('public.delivery_items_id_seq'::regclass); + + +-- +-- TOC entry 3394 (class 2604 OID 57545) +-- Name: dlc_products id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.dlc_products ALTER COLUMN id SET DEFAULT nextval('public.dlc_products_id_seq'::regclass); + + +-- +-- TOC entry 3361 (class 2604 OID 57454) +-- Name: groups id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.groups ALTER COLUMN id SET DEFAULT nextval('public.groups_id_seq'::regclass); + + +-- +-- TOC entry 3435 (class 2604 OID 2310149) +-- Name: invoice_verification_cache id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verification_cache ALTER COLUMN id SET DEFAULT nextval('public.invoice_verification_cache_id_seq'::regclass); + + +-- +-- TOC entry 3431 (class 2604 OID 2285572) +-- Name: invoice_verifications id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verifications ALTER COLUMN id SET DEFAULT nextval('public.invoice_verifications_id_seq'::regclass); + + +-- +-- TOC entry 3343 (class 2604 OID 24680) +-- Name: invoices id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoices ALTER COLUMN id SET DEFAULT nextval('public.invoices_id_seq'::regclass); + + +-- +-- TOC entry 3370 (class 2604 OID 57467) +-- Name: nocodb_config id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.nocodb_config ALTER COLUMN id SET DEFAULT nextval('public.nocodb_config_id_seq'::regclass); + + +-- +-- TOC entry 3379 (class 2604 OID 57491) +-- Name: orders id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.orders ALTER COLUMN id SET DEFAULT nextval('public.orders_id_seq'::regclass); + + +-- +-- TOC entry 3414 (class 2604 OID 57584) +-- Name: permissions id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.permissions ALTER COLUMN id SET DEFAULT nextval('public.permissions_id_seq'::regclass); + + +-- +-- TOC entry 3383 (class 2604 OID 57516) +-- Name: publicities id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.publicities ALTER COLUMN id SET DEFAULT nextval('public.publicities_id_seq'::regclass); + + +-- +-- TOC entry 3408 (class 2604 OID 57568) +-- Name: roles id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.roles ALTER COLUMN id SET DEFAULT nextval('public.roles_id_seq'::regclass); + + +-- +-- TOC entry 3348 (class 2604 OID 24695) +-- Name: sav_tickets id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.sav_tickets ALTER COLUMN id SET DEFAULT nextval('public.sav_tickets_id_seq'::regclass); + + +-- +-- TOC entry 3353 (class 2604 OID 24710) +-- Name: stores id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.stores ALTER COLUMN id SET DEFAULT nextval('public.stores_id_seq'::regclass); + + +-- +-- TOC entry 3374 (class 2604 OID 57479) +-- Name: suppliers id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.suppliers ALTER COLUMN id SET DEFAULT nextval('public.suppliers_id_seq'::regclass); + + +-- +-- TOC entry 3403 (class 2604 OID 57555) +-- Name: tasks id; Type: DEFAULT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.tasks ALTER COLUMN id SET DEFAULT nextval('public.tasks_id_seq'::regclass); + + +-- +-- TOC entry 3692 (class 0 OID 24577) +-- Dependencies: 216 +-- Data for Name: calendar_events; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.calendar_events (id, title, description, user_id, store_id, start_date, end_date, is_all_day, type, metadata, created_at, updated_at) FROM stdin; +1 Réunion équipe mensuelle Point mensuel sur les objectifs et nouveautés 1 1 2025-01-15 09:00:00 2025-01-15 10:30:00 f meeting \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +2 Formation sécurité Formation obligatoire sécurité incendie 1 1 2025-01-18 14:00:00 2025-01-18 17:00:00 f event \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +3 Livraison importante Réception commande mobilier salon 2 1 2025-01-15 14:00:00 2025-01-15 16:00:00 f delivery \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +4 Inventaire annuel Inventaire complet du magasin 3 2 2025-01-25 08:00:00 2025-01-25 18:00:00 t event \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +5 Visite inspection Visite du responsable régional 5 3 2025-01-22 10:00:00 2025-01-22 12:00:00 f meeting \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +6 Soldes d'hiver Début des soldes d'hiver 1 1 2025-01-08 08:00:00 2025-02-04 20:00:00 t event \N 2025-07-10 10:43:36.498061 2025-07-10 10:43:36.498061 +\. + + +-- +-- TOC entry 3694 (class 0 OID 24590) +-- Dependencies: 218 +-- Data for Name: client_orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.client_orders (id, order_number, customer_id, store_id, user_id, status, total_amount, order_date, notes, created_at, updated_at) FROM stdin; +1 CLT-2025-001 1 1 2 processing 680.50 2025-01-08 14:30:00 Livraison prévue vendredi matin 2025-07-10 10:43:46.442279 2025-07-10 10:43:46.442279 +2 CLT-2025-002 2 2 3 completed 1250.00 2025-01-05 10:15:00 Client satisfait de la livraison 2025-07-10 10:43:46.442279 2025-07-10 10:43:46.442279 +3 CLT-2025-003 3 3 5 pending 890.75 2025-01-09 16:45:00 En attente de validation paiement 2025-07-10 10:43:46.442279 2025-07-10 10:43:46.442279 +4 CLT-2025-004 4 1 2 cancelled 450.00 2025-01-07 11:20:00 Annulé par le client - remboursement effectué 2025-07-10 10:43:46.442279 2025-07-10 10:43:46.442279 +5 CLT-2025-005 5 2 3 processing 1580.25 2025-01-09 09:30:00 Commande spéciale mobilier sur mesure 2025-07-10 10:43:46.442279 2025-07-10 10:43:46.442279 +\. + + +-- +-- TOC entry 3696 (class 0 OID 24605) +-- Dependencies: 220 +-- Data for Name: command_items; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.command_items (id, command_id, product_name, product_code, quantity, unit_price, total_price, expiry_date) FROM stdin; +1 1 Canapé 3 places gris MBL-CAP-001 2 450.00 900.00 \N +2 1 Table basse chêne MBL-TBL-002 1 220.00 220.00 \N +3 1 Coussin décoratif DEC-COU-003 6 21.67 130.00 \N +4 2 Vase céramique bleu DEC-VAS-001 12 35.50 426.00 \N +5 2 Cadre photo 20x30 DEC-CAD-002 15 18.50 277.50 \N +6 2 Bougie parfumée DEC-BOU-003 24 7.83 187.92 \N +7 3 Salon de jardin teck JAR-SAL-001 1 1250.00 1250.00 \N +8 3 Parasol déporté 3m JAR-PAR-002 2 285.50 571.00 \N +9 3 Coussins extérieur JAR-COU-003 8 41.22 329.75 \N +10 4 Bureau informatique BUR-INF-001 1 320.00 320.00 \N +11 4 Chaise ergonomique BUR-CHA-002 2 123.90 247.80 \N +12 5 Tonnelle 3x4m JAR-TON-001 1 890.00 890.00 \N +13 5 Plancha gaz JAR-PLA-002 1 456.00 456.00 \N +14 5 Set outils jardinage JAR-OUT-003 3 144.75 434.25 \N +\. + + +-- +-- TOC entry 3698 (class 0 OID 24614) +-- Dependencies: 222 +-- Data for Name: commands; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.commands (id, command_number, supplier_id, store_id, user_id, status, total_amount, notes, order_date, expected_delivery_date, created_at, updated_at) FROM stdin; +1 CMD-2025-001 1 1 1 pending 1250.50 Commande urgente pour réapprovisionnement 2025-07-10 10:29:05.575664 2025-07-17 10:29:05.575664 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +2 CMD-2025-002 2 1 1 validated 2100.75 Commande saisonnière hiver 2025-07-08 10:29:05.575664 2025-07-15 10:29:05.575664 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +3 CMD-2025-003 3 1 1 shipped 850.00 Mobilier jardin 2025-07-05 10:29:05.575664 2025-07-12 10:29:05.575664 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +7 CMD-2025-004 4 1 1 delivered 567.80 Mobilier bureau 2024-12-28 11:45:00 2025-01-03 10:00:00 2025-07-10 10:42:54.106019 2025-07-10 10:42:54.106019 +8 CMD-2025-005 5 3 5 pending 1780.25 Collection jardin été 2025-01-09 16:10:00 2025-01-20 11:30:00 2025-07-10 10:42:54.106019 2025-07-10 10:42:54.106019 +\. + + +-- +-- TOC entry 3723 (class 0 OID 57526) +-- Dependencies: 247 +-- Data for Name: customer_orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.customer_orders (id, order_taker, customer_name, customer_phone, customer_email, product_designation, product_reference, gencode, quantity, supplier_id, status, deposit, is_promotional_price, customer_notified, notes, group_id, created_by, created_at, updated_at) FROM stdin; +1 moi schal 0623154654 \N qsdfg erf13213 3660092323745 1 1 En attente de Commande 10.00 f f \N 3 1 2025-07-19 19:03:44.739 2025-07-19 19:03:44.739 +2 moi schal 0623154654 \N fgdsh erf13213 366092323745 1 1 En attente de Commande 0.00 f f \N 5 _1753182518439 2025-07-22 13:19:27.447 2025-07-22 13:19:27.447 +\. + + +-- +-- TOC entry 3700 (class 0 OID 24629) +-- Dependencies: 224 +-- Data for Name: customers; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.customers (id, first_name, last_name, email, phone, address, store_id, created_at, updated_at) FROM stdin; +1 Sophie Dubois sophie.dubois@email.com 06 12 34 56 78 10 Rue de la Paix, Paris 1 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +2 Marc Legrand marc.legrand@email.com 06 23 45 67 89 45 Avenue Montaigne, Paris 1 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +3 Julie Moreau julie.moreau@email.com 06 34 56 78 90 32 Boulevard Saint-Germain, Paris 1 2025-07-10 10:29:05.575664 2025-07-10 10:29:05.575664 +4 Claire Dubois claire.dubois@email.com 06.12.34.56.78 45 Rue des Lilas, 75013 Paris 1 2025-07-10 10:43:03.624218 2025-07-10 10:43:03.624218 +5 Michel Rousseau michel.rousseau@email.com 06.87.65.43.21 12 Avenue Victor Hugo, 92100 Boulogne 2 2025-07-10 10:43:03.624218 2025-07-10 10:43:03.624218 +6 Isabelle Moreau isabelle.moreau@email.com 06.23.45.67.89 78 Boulevard Gambetta, 59800 Lille 3 2025-07-10 10:43:03.624218 2025-07-10 10:43:03.624218 +7 Thomas Leroy thomas.leroy@email.com 06.98.76.54.32 33 Place de la République, 75003 Paris 1 2025-07-10 10:43:03.624218 2025-07-10 10:43:03.624218 +8 Sandrine Garcia sandrine.garcia@email.com 06.11.22.33.44 67 Rue de la Liberté, 92000 Nanterre 2 2025-07-10 10:43:03.624218 2025-07-10 10:43:03.624218 +\. + + +-- +-- TOC entry 3744 (class 0 OID 2342913) +-- Dependencies: 268 +-- Data for Name: dashboard_messages; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.dashboard_messages (id, title, content, type, store_id, created_by, created_at) FROM stdin; +\. + + +-- +-- TOC entry 3738 (class 0 OID 819214) +-- Dependencies: 262 +-- Data for Name: database_backups; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.database_backups (id, filename, description, size, created_at, created_by, tables_count, status, backup_type) FROM stdin; +backup_1753114731087_37sqhixni backup_1753114731087_37sqhixni.sql Test après correction répertoire 82953 2025-07-21 16:18:51.096477 admin 28 completed manual +backup_1753115103686_whe2ezur5 backup_1753115103686_whe2ezur5.sql Test après correction production 83300 2025-07-21 16:25:03.820221 admin 28 completed manual +backup_1753609668951_pto6yeaea backup_1753609668951_pto6yeaea.sql Sauvegarde manuelle déclenchée - 27/07/2025 09:47:48 131486 2025-07-27 09:47:49.11734 system 28 completed manual +0Be3U-DFAGoXSV0xa1lUB backup_automatic_2025-08-18T02-00-00-000Z.sql Automatique backup du 18/08/2025 100104 2025-08-18 02:00:00.444459 system 30 completed automatic +bAQDAmP7qC6yF_v4hEqAp backup_automatic_2025-09-01T02-00-00-001Z.sql Automatique backup du 01/09/2025 104544 2025-09-01 02:00:00.492317 system 31 completed automatic +_nmeY9-4XKisNTkPDKvmM backup_automatic_2025-09-02T02-46-17-030Z.sql Automatique backup du 02/09/2025 0 2025-09-02 02:46:17.044913 system 0 creating automatic +\. + + +-- +-- TOC entry 3735 (class 0 OID 73734) +-- Dependencies: 259 +-- Data for Name: deliveries; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.deliveries (id, order_id, supplier_id, group_id, scheduled_date, delivered_date, quantity, unit, status, notes, bl_number, bl_amount, invoice_reference, invoice_amount, reconciled, validated_at, created_by, created_at, updated_at) FROM stdin; +1 \N 1 1 2025-07-20 \N 10 palettes pending Test livraison \N \N \N \N f \N 1 2025-07-19 20:32:20.382559 2025-07-19 20:32:20.382559 +3 \N 1 4 2025-07-25 \N 5 palettes planned Test statut planned \N \N \N \N f \N admin_local 2025-07-19 20:34:11.951608 2025-07-19 20:34:11.951608 +2 1 1 4 2025-07-17 2025-07-19 20:33:34.611 1 palettes delivered \N BL12345678 1299.00 faC454566435F 1299.00 t 2025-07-19 20:33:34.611 1 2025-07-19 20:33:27.154225 2025-07-19 21:50:36.00099 +101 2 1 4 2025-07-26 \N 3 palettes planned Test pour validation - liée à commande ID 2 \N \N \N \N f \N admin_local 2025-07-20 08:22:00.758253 2025-07-20 08:22:00.758253 +102 4 3 5 2025-07-23 2025-07-22 13:16:16.924 1 palettes delivered \N BL12345678 1200.00 FC25624812 1200.00 t 2025-07-22 13:16:16.924 _1753182518439 2025-07-22 13:07:50.937609 2025-07-22 13:16:35.824 +104 \N 1 4 2025-07-23 2025-07-23 00:00:00 3 palettes delivered \N BL205794 \N \N \N f \N 1 2025-07-24 13:23:51.878626 2025-07-24 13:23:51.878626 +105 \N 2 4 2025-07-23 2025-07-23 00:00:00 2 palettes delivered \N BL205795 \N \N \N f \N 1 2025-07-24 13:23:51.878626 2025-07-24 13:23:51.878626 +106 \N 2 4 2025-07-16 2025-07-16 00:00:00 4 palettes delivered \N BL1125071423 \N \N \N f \N 1 2025-07-24 13:23:51.878626 2025-07-24 13:23:51.878626 +107 \N 1 4 2025-07-15 2025-07-15 00:00:00 6 palettes delivered \N BL377797 \N \N \N f \N 1 2025-07-24 13:23:51.878626 2025-07-24 13:23:51.878626 +108 \N 1 4 2025-07-25 \N 5 palettes delivered Test livraison 1 pour pagination BL123456 1500.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +109 \N 2 4 2025-07-25 \N 3 palettes delivered Test livraison 2 pour pagination BL123457 890.50 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +110 \N 1 4 2025-07-25 \N 7 palettes delivered Test livraison 3 pour pagination BL123458 2100.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +111 \N 3 4 2025-07-26 \N 4 palettes delivered Test livraison 4 pour pagination BL123459 1200.75 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +112 \N 1 4 2025-07-26 \N 6 palettes delivered Test livraison 5 pour pagination BL123460 1800.25 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +113 \N 2 4 2025-07-26 \N 2 palettes delivered Test livraison 6 pour pagination BL123461 650.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +114 \N 3 4 2025-07-27 \N 8 palettes delivered Test livraison 7 pour pagination BL123462 2400.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +115 \N 1 4 2025-07-27 \N 5 palettes delivered Test livraison 8 pour pagination BL123463 1500.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +116 \N 2 4 2025-07-27 \N 3 palettes delivered Test livraison 9 pour pagination BL123464 900.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +117 \N 3 4 2025-07-28 \N 4 palettes delivered Test livraison 10 pour pagination BL123465 1200.00 \N \N f \N admin_local 2025-07-25 11:51:33.774256 2025-07-25 11:51:33.774256 +120 \N 4 1 2025-07-25 \N 1 palettes planned \N \N \N \N \N f \N 1 2025-07-25 18:34:31.897574 2025-07-25 18:34:31.897574 +122 \N 4 1 2025-07-24 2025-07-27 16:09:31.86 1 palettes delivered \N bllt015904 1200.00 25025575 1200.00 f 2025-07-27 16:09:31.86 1 2025-07-27 16:09:27.001141 2025-07-28 14:39:57.081 +124 \N 5 5 2025-07-24 \N 1 palettes delivered \N \N \N F5162713 5972.48 f \N _1753182518439 2025-07-30 12:59:12.824932 2025-07-30 12:59:12.824932 +103 \N 1 4 2025-07-24 2025-07-24 00:00:00 5 palettes delivered \N BL00130066 \N \N f \N 1 2025-07-24 13:23:51.878626 2025-07-27 22:33:18.066 +118 8 1 4 2025-08-08 2025-07-25 12:42:28.748 1 palettes delivered \N BL2501644 1200.00 \N f 2025-07-25 12:42:28.748 1 2025-07-25 12:42:19.117085 2025-07-27 22:34:05.073 +119 \N 4 1 2025-07-25 2025-07-25 18:34:43.783 1 palettes pending \N 25025575 2468.48 25025575 2468.48 f \N 1 2025-07-25 18:33:33.42942 2025-07-28 13:31:47.301 +127 \N 5 5 2025-07-30 \N 1 palettes delivered \N \N \N F5162713 5972.48 f \N admin_local 2025-07-30 14:54:27.805769 2025-07-30 14:54:27.805769 +121 \N 4 1 2025-07-25 \N 2 palettes delivered \N bllt015904 1200.00 25025575 1200.00 t \N 1 2025-07-25 21:00:02.583105 2025-07-30 20:52:38.952429 +126 \N 4 1 2025-07-24 \N 1 palettes delivered \N \N \N \N \N f \N _1753182518439 2025-07-30 14:09:31.269975 2025-07-30 20:58:03.172497 +128 \N 1 1 2025-08-20 \N 5 palettes planned Test cache PostgreSQL \N \N FACT2025-001 1500.50 f \N 1 2025-08-17 16:03:04.728264 2025-08-17 16:03:04.728264 +129 \N 1 1 2025-08-21 \N 3 palettes planned Test même facture cache \N \N FACT2025-001 1500.50 f \N 1 2025-08-17 16:03:06.006233 2025-08-17 16:03:06.006233 +130 \N 1 1 2025-08-20 \N 5 palettes planned Test cache MemStorage \N \N FACT2025-001 1500.50 f \N 1 2025-08-17 16:04:27.897356 2025-08-17 16:04:27.897356 +131 \N 1 1 2025-08-21 \N 3 palettes planned Test même facture cache \N \N FACT2025-001 1500.50 f \N 1 2025-08-17 16:04:29.232538 2025-08-17 16:04:29.232538 +132 \N 1 1 2025-08-20 \N 5 palettes planned Test final cache \N \N FACT2025-002 2500.50 f \N 1 2025-08-17 16:06:06.113457 2025-08-17 16:06:06.113457 +133 \N 1 1 2025-08-21 \N 3 palettes planned Test même facture cache final \N \N FACT2025-002 2500.50 f \N 1 2025-08-17 16:06:07.49284 2025-08-17 16:06:07.49284 +\. + + +-- +-- TOC entry 3702 (class 0 OID 24654) +-- Dependencies: 226 +-- Data for Name: delivery_items; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.delivery_items (id, delivery_id, command_item_id, product_name, quantity_ordered, quantity_delivered, quantity_damaged, notes) FROM stdin; +\. + + +-- +-- TOC entry 3725 (class 0 OID 57542) +-- Dependencies: 249 +-- Data for Name: dlc_products; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.dlc_products (id, name, gencode, dlc_date, quantity, store_id, created_at, group_id, created_by, status, validated_by, expiry_date, product_code, description, supplier_id, product_name, date_type, unit, location, alert_threshold, notes, updated_at, validated_at, stock_epuise, stock_epuise_by, stock_epuise_at) FROM stdin; +2 Produit Test DLC 1234567890123 2025-07-30 1 \N 2025-07-19 22:35:49.651214 4 admin_local en_cours \N 2025-07-30 1234567890123 \N 1 Produit Test DLC DLC unité Magasin 15 Test stats 2025-07-19 22:35:49.651214 \N f \N \N +3 Produit Expirant Bientôt 2345678901234 2025-07-22 2 \N 2025-07-19 22:35:49.651214 4 admin_local en_cours \N 2025-07-22 2345678901234 \N 1 Produit Expirant Bientôt DLC unité Magasin 15 Expire dans 3 jours 2025-07-19 22:35:49.651214 \N f \N \N +4 Produit Expiré 3456789012345 2025-07-15 1 \N 2025-07-19 22:35:49.651214 4 admin_local en_cours \N 2025-07-15 3456789012345 \N 1 Produit Expiré DLC unité Magasin 15 Déjà expiré 2025-07-19 22:35:49.651214 \N f \N \N +7 Produit Validé Test VAL123 2025-08-15 1 \N 2025-07-19 23:54:00.380592 4 admin valides \N \N \N \N 1 Produit Validé Test DLC unité Magasin 15 Produit avec statut validé 2025-07-19 23:54:00.380592 \N f \N \N +15 coca 366092323745 \N 1 \N 2025-07-22 13:35:02.427 5 _1753182518439 en_cours \N 2025-07-27 \N \N 3 coca dlc unité Magasin 15 2025-07-22 13:35:02.427 \N f \N \N +\. + + +-- +-- TOC entry 3713 (class 0 OID 57451) +-- Dependencies: 237 +-- Data for Name: groups; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.groups (id, name, color, address, phone, email, nocodb_config_id, nocodb_table_id, nocodb_table_name, invoice_column_name, created_at, updated_at, nocodb_bl_column_name, nocodb_amount_column_name, nocodb_supplier_column_name, webhook_url) FROM stdin; +5 Houdemont #455A64 \N \N \N 1 my7zunxprumahmm RefFacture 2025-07-19 20:19:44.552373 2025-07-28 18:26:14.956 Numéro de BL Montant HT Fournisseurs https://workflow.ffnancy.fr/webhook-test/9252adba-574b-44cb-a3d1-7c60f208b222 +1 Frouard #1976D2 \N \N \N 1 mrr733dfb8wtt9b CommandeF RefFacture 2025-07-19 20:19:38.471557 2025-07-30 14:09:25.328285 Numero_BL Montant HT Fournisseurs https://test-webhook-1753648766995.example.com +2 Houdemont #455A64 \N \N \N 1 my7zunxprumahmm \N Ref Facture 2025-07-30 14:09:25.328285 2025-07-30 14:09:25.328285 Numéro de BL Montant HT Fournisseurs +\. + + +-- +-- TOC entry 3742 (class 0 OID 2310146) +-- Dependencies: 266 +-- Data for Name: invoice_verification_cache; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.invoice_verification_cache (id, cache_key, group_id, invoice_reference, delivery_id, verification_result, expires_at, created_at, supplier_name, "exists", match_type, error_message, cache_hit, api_call_time, updated_at, is_reconciled) FROM stdin; +\. + + +-- +-- TOC entry 3740 (class 0 OID 2285569) +-- Dependencies: 264 +-- Data for Name: invoice_verifications; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.invoice_verifications (id, delivery_id, group_id, invoice_reference, supplier_name, "exists", match_type, verified_at, is_valid, last_checked_at) FROM stdin; +4 102 5 FC25624812 Fournisseur DLC Test f NONE 2025-07-28 13:05:45.714 t 2025-07-28 13:05:45.714 +8 121 1 25025575 Lidis t NONE 2025-07-28 13:51:45.431 t 2025-07-28 13:51:45.431 +1 122 1 FC25624812 Lidis f NONE 2025-07-28 12:56:38.001 t 2025-07-28 14:39:37.862 +14 127 5 F5162713 JJA Five t INVOICE_REF 2025-07-30 14:58:14.031205 t 2025-07-30 14:58:14.031205 +15 124 5 F5162713 JJA Five t INVOICE_REF 2025-07-30 14:58:14.290283 t 2025-07-30 14:58:14.290283 +\. + + +-- +-- TOC entry 3704 (class 0 OID 24677) +-- Dependencies: 228 +-- Data for Name: invoices; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.invoices (id, invoice_number, command_id, delivery_id, store_id, user_id, type, total_amount, status, issue_date, due_date, created_at, updated_at) FROM stdin; +\. + + +-- +-- TOC entry 3715 (class 0 OID 57464) +-- Dependencies: 239 +-- Data for Name: nocodb_config; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.nocodb_config (id, name, base_url, project_id, api_token, description, is_active, created_by, created_at, updated_at) FROM stdin; +1 Nocodb https://nocodb.ffnancy.fr pcg4uw79ukvycxc z4BAwLo6dgoN_E7PKJSHN7PA7kdBePtKOYcsDlwQ t 1 2025-07-25 16:26:27.006311 2025-07-25 23:08:37.769504 +\. + + +-- +-- TOC entry 3719 (class 0 OID 57488) +-- Dependencies: 243 +-- Data for Name: orders; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.orders (id, supplier_id, group_id, planned_date, quantity, unit, status, notes, created_by, created_at, updated_at) FROM stdin; +2 1 4 2025-07-09 \N \N pending \N 1 2025-07-19 20:33:16.159959 2025-07-19 20:33:16.159959 +1 1 3 2025-07-02 \N \N delivered \N 1 2025-07-19 18:57:18.713694 2025-07-19 20:33:34.611 +3 3 5 2025-07-11 \N \N pending \N _1753182518439 2025-07-22 12:54:21.143062 2025-07-22 12:54:21.143062 +4 3 5 2025-07-09 \N \N delivered \N _1753182518439 2025-07-22 13:07:38.771467 2025-07-22 13:16:16.924 +5 2 4 2025-07-09 \N \N pending \N 1 2025-07-24 09:34:49.335611 2025-07-24 09:34:49.335611 +6 3 4 2025-07-09 \N \N pending \N 1 2025-07-24 09:34:55.314888 2025-07-24 09:34:55.314888 +7 1 2 2025-07-25 5 palettes pending Test commande pour manager groupe 2 test_manager 2025-07-24 10:29:44.602606 2025-07-24 10:29:44.602606 +8 1 4 2025-07-10 \N \N delivered \N 1 2025-07-25 12:42:09.377059 2025-07-25 12:42:28.781778 +9 1 1 2025-07-09 \N \N pending \N 1 2025-07-27 16:09:15.10213 2025-07-27 16:09:15.10213 +\. + + +-- +-- TOC entry 3731 (class 0 OID 57581) +-- Dependencies: 255 +-- Data for Name: permissions; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.permissions (id, name, display_name, description, category, action, resource, is_system, created_at) FROM stdin; +55 dashboard_read Voir tableau de bord Accès en lecture au tableau de bord tableau_de_bord read dashboard t 2025-08-04 11:37:37.307 +56 groups_read Voir magasins Accès en lecture aux magasins magasins read groups t 2025-08-04 11:37:37.333 +57 groups_create Créer magasins Création de nouveaux magasins magasins create groups t 2025-08-04 11:37:37.356 +58 groups_update Modifier magasins Modification des magasins existants magasins update groups t 2025-08-04 11:37:37.38 +59 groups_delete Supprimer magasins Suppression de magasins magasins delete groups t 2025-08-04 11:37:37.403 +60 suppliers_read Voir fournisseurs Accès en lecture aux fournisseurs fournisseurs read suppliers t 2025-08-04 11:37:37.427 +61 suppliers_create Créer fournisseurs Création de nouveaux fournisseurs fournisseurs create suppliers t 2025-08-04 11:37:37.451 +62 suppliers_update Modifier fournisseurs Modification des fournisseurs existants fournisseurs update suppliers t 2025-08-04 11:37:37.473 +63 suppliers_delete Supprimer fournisseurs Suppression de fournisseurs fournisseurs delete fournisseurs t 2025-08-04 11:37:37.496 +64 orders_read Voir commandes Accès en lecture aux commandes commandes read orders t 2025-08-04 11:37:37.519 +65 orders_create Créer commandes Création de nouvelles commandes commandes create orders t 2025-08-04 11:37:37.542 +66 orders_update Modifier commandes Modification des commandes existantes commandes update orders t 2025-08-04 11:37:37.565 +67 orders_delete Supprimer commandes Suppression de commandes commandes delete orders t 2025-08-04 11:37:37.588 +68 deliveries_read Voir livraisons Accès en lecture aux livraisons livraisons read deliveries t 2025-08-04 11:37:37.611 +69 deliveries_create Créer livraisons Création de nouvelles livraisons livraisons create deliveries t 2025-08-04 11:37:37.634 +70 deliveries_update Modifier livraisons Modification des livraisons existantes livraisons update deliveries t 2025-08-04 11:37:37.657 +71 deliveries_delete Supprimer livraisons Suppression de livraisons livraisons delete deliveries t 2025-08-04 11:37:37.68 +72 deliveries_validate Valider livraisons Validation des livraisons avec BL livraisons validate deliveries t 2025-08-04 11:37:37.703 +73 calendar_read Voir calendrier Accès en lecture au calendrier calendrier read calendar t 2025-08-04 11:37:37.725 +74 reconciliation_read Voir rapprochement Accès en lecture au rapprochement BL/Factures rapprochement read reconciliation t 2025-08-04 11:37:37.748 +75 reconciliation_update Modifier rapprochement Modification des données de rapprochement rapprochement update reconciliation t 2025-08-04 11:37:37.771 +76 publicities_read Voir publicités Accès en lecture aux publicités publicites read publicities t 2025-08-04 11:37:37.794 +77 publicities_create Créer publicités Création de nouvelles publicités publicites create publicities t 2025-08-04 11:37:37.817 +78 publicities_update Modifier publicités Modification des publicités existantes publicites update publicities t 2025-08-04 11:37:37.84 +79 publicities_delete Supprimer publicités Suppression de publicités publicites delete publicities t 2025-08-04 11:37:37.862 +80 customer_orders_read Voir commandes clients Accès en lecture aux commandes clients commandes_clients read customer_orders t 2025-08-04 11:37:37.885 +81 customer_orders_create Créer commandes clients Création de nouvelles commandes clients commandes_clients create customer_orders t 2025-08-04 11:37:37.907 +82 customer_orders_update Modifier commandes clients Modification des commandes clients existantes commandes_clients update customer_orders t 2025-08-04 11:37:37.931 +83 customer_orders_delete Supprimer commandes clients Suppression de commandes clients commandes_clients delete customer_orders t 2025-08-04 11:37:37.954 +84 customer_orders_print Imprimer étiquettes Impression d'étiquettes de commandes clients commandes_clients print customer_orders t 2025-08-04 11:37:37.975 +85 customer_orders_notify Notifier clients Envoi de notifications aux clients commandes_clients notify customer_orders t 2025-08-04 11:37:37.999 +86 dlc_read Voir produits DLC Accès en lecture aux produits avec date limite de consommation gestion_dlc read dlc t 2025-08-04 11:37:38.024 +87 dlc_create Créer produits DLC Création de nouveaux produits DLC gestion_dlc create dlc t 2025-08-04 11:37:38.047 +88 dlc_update Modifier produits DLC Modification des produits DLC existants gestion_dlc update dlc t 2025-08-04 11:37:38.07 +89 dlc_delete Supprimer produits DLC Suppression de produits DLC gestion_dlc delete dlc t 2025-08-04 11:37:38.093 +90 dlc_validate Valider produits DLC Validation et vérification des produits DLC gestion_dlc validate dlc t 2025-08-04 11:37:38.115 +91 dlc_print Imprimer étiquettes DLC Impression d'étiquettes pour produits DLC gestion_dlc print dlc t 2025-08-04 11:37:38.139 +92 dlc_stats Voir statistiques DLC Accès aux statistiques des produits DLC gestion_dlc stats dlc t 2025-08-04 11:37:38.16 +93 tasks_read Voir tâches Accès en lecture aux tâches gestion_taches read tasks t 2025-08-04 11:37:38.183 +94 tasks_create Créer tâches Création de nouvelles tâches gestion_taches create tasks t 2025-08-04 11:37:38.206 +95 tasks_update Modifier tâches Modification des tâches existantes gestion_taches update tasks t 2025-08-04 11:37:38.229 +96 tasks_delete Supprimer tâches Suppression de tâches gestion_taches delete tasks t 2025-08-04 11:37:38.252 +97 tasks_assign Assigner tâches Attribution de tâches aux utilisateurs gestion_taches assign tasks t 2025-08-04 11:37:38.274 +98 users_read Voir utilisateurs Accès en lecture aux utilisateurs utilisateurs read users t 2025-08-04 11:37:38.297 +99 users_create Créer utilisateurs Création de nouveaux utilisateurs utilisateurs create users t 2025-08-04 11:37:38.32 +100 users_update Modifier utilisateurs Modification des utilisateurs existants utilisateurs update users t 2025-08-04 11:37:38.343 +101 users_delete Supprimer utilisateurs Suppression d'utilisateurs utilisateurs delete users t 2025-08-04 11:37:38.366 +102 roles_read Voir rôles Accès en lecture aux rôles gestion_roles read roles t 2025-08-04 11:37:38.388 +103 roles_create Créer rôles Création de nouveaux rôles gestion_roles create roles t 2025-08-04 11:37:38.411 +104 roles_update Modifier rôles Modification des rôles existants gestion_roles update roles t 2025-08-04 11:37:38.434 +105 roles_delete Supprimer rôles Suppression de rôles gestion_roles delete roles t 2025-08-04 11:37:38.457 +106 roles_assign Assigner rôles Attribution de rôles aux utilisateurs gestion_roles assign roles t 2025-08-04 11:37:38.481 +107 system_admin Administration système Accès complet à l'administration du système administration admin system t 2025-08-04 11:37:38.503 +108 nocodb_config Configuration NocoDB Gestion de la configuration NocoDB administration config nocodb t 2025-08-04 11:37:38.528 +\. + + +-- +-- TOC entry 3721 (class 0 OID 57513) +-- Dependencies: 245 +-- Data for Name: publicities; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.publicities (id, pub_number, designation, title, description, start_date, end_date, year, created_by, created_at, updated_at) FROM stdin; +3 TEST-PROD Test Production \N \N 2025-07-22 2025-07-28 2025 1 2025-07-19 22:38:52.143069 2025-07-19 22:38:52.143069 +4 TEST-FORCE-PROD Test Force Production \N \N 2025-07-23 2025-07-29 2025 1 2025-07-19 22:39:13.937601 2025-07-19 22:39:13.937601 +5 TEST-ERROR Test Error \N \N 2025-07-24 2025-07-30 2025 1 2025-07-19 22:54:05.573607 2025-07-19 22:54:05.573607 +6 2501 wxcvwxc \N \N 2025-07-01 2025-07-06 2025 1 2025-07-19 22:55:06.907432 2025-07-19 22:55:06.907432 +7 DEBUG-PROD Debug Production \N \N 2025-07-25 2025-07-31 2025 1 2025-07-19 22:56:05.296286 2025-07-19 22:56:05.296286 +9 FINAL-TEST Test Final Production \N \N 2025-07-27 2025-08-02 2025 1 2025-07-19 23:03:21.499342 2025-07-19 23:03:21.499342 +8 DIAG-PROD Diagnostic Production \N \N 2025-07-26 2025-08-01 2025 1 2025-07-19 22:58:31.680917 2025-07-20 09:09:26.486 +2 TEST123 Test \N \N 2025-07-20 2025-07-25 2025 1 2025-07-19 22:38:10.039397 2025-07-20 09:13:42.375 +10 2508 qsd \N \N 2025-07-28 2025-08-03 2025 1 2025-07-22 15:37:06.687956 2025-07-22 15:37:06.687956 +\. + + +-- +-- TOC entry 3733 (class 0 OID 57615) +-- Dependencies: 257 +-- Data for Name: publicity_participations; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.publicity_participations (publicity_id, group_id, created_at) FROM stdin; +1 5 2025-07-19 21:38:15.036215 +3 4 2025-07-19 22:38:52.193439 +4 4 2025-07-19 22:39:13.987098 +5 4 2025-07-19 22:54:05.624748 +6 5 2025-07-19 22:55:06.955089 +7 4 2025-07-19 22:56:05.344704 +9 5 2025-07-19 23:03:21.551156 +2 4 2025-07-20 09:13:42.436078 +2 5 2025-07-20 09:13:42.436078 +10 5 2025-07-22 15:37:06.737248 +\. + + +-- +-- TOC entry 3732 (class 0 OID 57609) +-- Dependencies: 256 +-- Data for Name: role_permissions; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.role_permissions (role_id, permission_id, created_at) FROM stdin; +8 55 2025-08-04 11:37:38.575 +8 56 2025-08-04 11:37:38.575 +8 57 2025-08-04 11:37:38.575 +8 58 2025-08-04 11:37:38.575 +8 59 2025-08-04 11:37:38.575 +8 60 2025-08-04 11:37:38.575 +8 61 2025-08-04 11:37:38.575 +8 62 2025-08-04 11:37:38.575 +8 63 2025-08-04 11:37:38.575 +8 64 2025-08-04 11:37:38.575 +8 65 2025-08-04 11:37:38.575 +8 66 2025-08-04 11:37:38.575 +8 67 2025-08-04 11:37:38.575 +8 68 2025-08-04 11:37:38.575 +8 69 2025-08-04 11:37:38.575 +8 70 2025-08-04 11:37:38.575 +8 71 2025-08-04 11:37:38.575 +8 72 2025-08-04 11:37:38.575 +8 73 2025-08-04 11:37:38.575 +8 74 2025-08-04 11:37:38.575 +8 75 2025-08-04 11:37:38.575 +8 76 2025-08-04 11:37:38.575 +8 77 2025-08-04 11:37:38.575 +8 78 2025-08-04 11:37:38.575 +8 79 2025-08-04 11:37:38.575 +8 80 2025-08-04 11:37:38.575 +8 81 2025-08-04 11:37:38.575 +8 82 2025-08-04 11:37:38.575 +8 83 2025-08-04 11:37:38.575 +8 84 2025-08-04 11:37:38.575 +8 85 2025-08-04 11:37:38.575 +8 86 2025-08-04 11:37:38.575 +8 87 2025-08-04 11:37:38.575 +8 88 2025-08-04 11:37:38.575 +8 89 2025-08-04 11:37:38.575 +8 90 2025-08-04 11:37:38.575 +8 91 2025-08-04 11:37:38.575 +8 92 2025-08-04 11:37:38.575 +8 93 2025-08-04 11:37:38.575 +8 94 2025-08-04 11:37:38.575 +8 95 2025-08-04 11:37:38.575 +8 96 2025-08-04 11:37:38.575 +8 97 2025-08-04 11:37:38.575 +8 98 2025-08-04 11:37:38.575 +8 99 2025-08-04 11:37:38.575 +8 100 2025-08-04 11:37:38.575 +8 101 2025-08-04 11:37:38.575 +8 102 2025-08-04 11:37:38.575 +8 103 2025-08-04 11:37:38.575 +8 104 2025-08-04 11:37:38.575 +8 105 2025-08-04 11:37:38.575 +8 106 2025-08-04 11:37:38.575 +8 107 2025-08-04 11:37:38.575 +8 108 2025-08-04 11:37:38.575 +9 55 2025-08-04 11:37:38.624 +9 56 2025-08-04 11:37:38.624 +9 57 2025-08-04 11:37:38.624 +9 58 2025-08-04 11:37:38.624 +9 59 2025-08-04 11:37:38.624 +9 60 2025-08-04 11:37:38.624 +9 61 2025-08-04 11:37:38.624 +9 62 2025-08-04 11:37:38.624 +9 63 2025-08-04 11:37:38.624 +9 64 2025-08-04 11:37:38.624 +9 65 2025-08-04 11:37:38.624 +9 66 2025-08-04 11:37:38.624 +9 67 2025-08-04 11:37:38.624 +9 68 2025-08-04 11:37:38.624 +9 69 2025-08-04 11:37:38.624 +9 70 2025-08-04 11:37:38.624 +9 71 2025-08-04 11:37:38.624 +9 72 2025-08-04 11:37:38.624 +9 73 2025-08-04 11:37:38.624 +9 74 2025-08-04 11:37:38.624 +9 75 2025-08-04 11:37:38.624 +9 76 2025-08-04 11:37:38.624 +9 77 2025-08-04 11:37:38.624 +9 78 2025-08-04 11:37:38.624 +9 79 2025-08-04 11:37:38.624 +9 80 2025-08-04 11:37:38.624 +9 81 2025-08-04 11:37:38.624 +9 82 2025-08-04 11:37:38.624 +9 83 2025-08-04 11:37:38.624 +9 84 2025-08-04 11:37:38.624 +9 85 2025-08-04 11:37:38.624 +9 86 2025-08-04 11:37:38.624 +9 87 2025-08-04 11:37:38.624 +9 88 2025-08-04 11:37:38.624 +9 89 2025-08-04 11:37:38.624 +9 90 2025-08-04 11:37:38.624 +9 91 2025-08-04 11:37:38.624 +9 92 2025-08-04 11:37:38.624 +9 93 2025-08-04 11:37:38.624 +9 94 2025-08-04 11:37:38.624 +9 95 2025-08-04 11:37:38.624 +9 96 2025-08-04 11:37:38.624 +9 97 2025-08-04 11:37:38.624 +9 98 2025-08-04 11:37:38.624 +9 99 2025-08-04 11:37:38.624 +9 100 2025-08-04 11:37:38.624 +9 108 2025-08-04 11:37:38.624 +10 55 2025-08-04 11:37:38.671 +10 56 2025-08-04 11:37:38.671 +10 60 2025-08-04 11:37:38.671 +10 64 2025-08-04 11:37:38.671 +10 68 2025-08-04 11:37:38.671 +10 69 2025-08-04 11:37:38.671 +10 70 2025-08-04 11:37:38.671 +10 73 2025-08-04 11:37:38.671 +10 74 2025-08-04 11:37:38.671 +10 76 2025-08-04 11:37:38.671 +10 80 2025-08-04 11:37:38.671 +10 81 2025-08-04 11:37:38.671 +10 82 2025-08-04 11:37:38.671 +10 83 2025-08-04 11:37:38.671 +10 84 2025-08-04 11:37:38.671 +10 85 2025-08-04 11:37:38.671 +10 86 2025-08-04 11:37:38.671 +10 87 2025-08-04 11:37:38.671 +10 88 2025-08-04 11:37:38.671 +10 93 2025-08-04 11:37:38.671 +10 98 2025-08-04 11:37:38.671 +10 102 2025-08-04 11:37:38.671 +11 55 2025-08-04 11:37:38.717 +11 56 2025-08-04 11:37:38.717 +11 57 2025-08-04 11:37:38.717 +11 58 2025-08-04 11:37:38.717 +11 59 2025-08-04 11:37:38.717 +11 60 2025-08-04 11:37:38.717 +11 61 2025-08-04 11:37:38.717 +11 62 2025-08-04 11:37:38.717 +11 63 2025-08-04 11:37:38.717 +11 64 2025-08-04 11:37:38.717 +11 65 2025-08-04 11:37:38.717 +11 66 2025-08-04 11:37:38.717 +11 67 2025-08-04 11:37:38.717 +11 68 2025-08-04 11:37:38.717 +11 69 2025-08-04 11:37:38.717 +11 70 2025-08-04 11:37:38.717 +11 71 2025-08-04 11:37:38.717 +11 72 2025-08-04 11:37:38.717 +11 73 2025-08-04 11:37:38.717 +11 74 2025-08-04 11:37:38.717 +11 75 2025-08-04 11:37:38.717 +11 76 2025-08-04 11:37:38.717 +11 77 2025-08-04 11:37:38.717 +11 78 2025-08-04 11:37:38.717 +11 79 2025-08-04 11:37:38.717 +11 80 2025-08-04 11:37:38.717 +11 81 2025-08-04 11:37:38.717 +11 82 2025-08-04 11:37:38.717 +11 83 2025-08-04 11:37:38.717 +11 84 2025-08-04 11:37:38.717 +11 85 2025-08-04 11:37:38.717 +11 86 2025-08-04 11:37:38.717 +11 87 2025-08-04 11:37:38.717 +11 88 2025-08-04 11:37:38.717 +11 89 2025-08-04 11:37:38.717 +11 90 2025-08-04 11:37:38.717 +11 91 2025-08-04 11:37:38.717 +11 92 2025-08-04 11:37:38.717 +11 93 2025-08-04 11:37:38.717 +11 94 2025-08-04 11:37:38.717 +11 95 2025-08-04 11:37:38.717 +11 96 2025-08-04 11:37:38.717 +11 97 2025-08-04 11:37:38.717 +11 107 2025-08-04 11:37:38.717 +11 108 2025-08-04 11:37:38.717 +\. + + +-- +-- TOC entry 3729 (class 0 OID 57565) +-- Dependencies: 253 +-- Data for Name: roles; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.roles (id, name, display_name, description, color, is_system, is_active, created_at, updated_at) FROM stdin; +8 admin Administrateur Accès complet à toutes les fonctionnalités du système #dc2626 t t 2025-08-04 11:37:37.199 2025-08-04 11:37:37.199 +9 manager Manager Accès à la gestion des commandes, livraisons et fournisseurs #2563eb t t 2025-08-04 11:37:37.23 2025-08-04 11:37:37.23 +10 employee Employé Accès en lecture aux données et publicités #16a34a t t 2025-08-04 11:37:37.253 2025-08-04 11:37:37.253 +11 directeur Directeur Supervision générale et gestion stratégique #7c3aed t t 2025-08-04 11:37:37.276 2025-08-04 11:37:37.276 +\. + + +-- +-- TOC entry 3706 (class 0 OID 24692) +-- Dependencies: 230 +-- Data for Name: sav_tickets; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.sav_tickets (id, ticket_number, customer_id, store_id, user_id, assigned_user_id, title, description, status, priority, category, resolution, created_at, updated_at) FROM stdin; +1 SAV-2025-001 1 1 1 \N Produit défaillant Le client signale un défaut sur son achat de la semaine dernière open high warranty \N 2025-07-10 10:29:11.446002 2025-07-10 10:29:11.446002 +2 SAV-2025-002 2 1 1 \N Demande d'échange Le client souhaite échanger un article contre un autre modèle in_progress normal exchange \N 2025-07-10 10:29:11.446002 2025-07-10 10:29:11.446002 +3 SAV-2025-003 3 1 1 \N Retour produit Retour sous garantie pour remboursement open normal return \N 2025-07-10 10:29:11.446002 2025-07-10 10:29:11.446002 +7 SAV-2025-004 4 1 1 2 Garantie parasol Mécanisme d'ouverture cassé après 3 mois. Sous garantie. resolved normal warranty \N 2025-07-10 10:43:42.222233 2025-07-10 10:43:42.222233 +8 SAV-2025-005 5 2 3 3 Pièce manquante Vis de fixation manquantes dans le colis mobilier bureau. open low complaint \N 2025-07-10 10:43:42.222233 2025-07-10 10:43:42.222233 +\. + + +-- +-- TOC entry 3709 (class 0 OID 32770) +-- Dependencies: 233 +-- Data for Name: session; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.session (sid, sess, expire) FROM stdin; +0k6-w_422nQogy421QfoxBvyDXIgMWm4 {"cookie":{"originalMaxAge":86400000,"expires":"2025-08-06T12:49:02.236Z","secure":false,"httpOnly":true,"path":"/","sameSite":"lax"},"passport":{"user":"1"}} 2025-08-07 08:20:55 +\. + + +-- +-- TOC entry 3710 (class 0 OID 57427) +-- Dependencies: 234 +-- Data for Name: sessions; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.sessions (sid, sess, expire) FROM stdin; +\. + + +-- +-- TOC entry 3708 (class 0 OID 24707) +-- Dependencies: 232 +-- Data for Name: stores; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.stores (id, name, address, phone, email, is_active, created_at, updated_at) FROM stdin; +1 La Foir'Fouille Paris 123 Avenue des Champs-Élysées, Paris 01 42 12 34 56 paris@lafoirfouille.com t 2025-07-10 10:28:59.788159 2025-07-10 10:28:59.788159 +2 La Foir'Fouille Centre-Ville 123 Rue de la Paix, 75001 Paris 01.23.45.67.89 centre-ville@lafoir.com t 2025-07-10 10:42:33.03728 2025-07-10 10:42:33.03728 +3 La Foir'Fouille Banlieue 456 Avenue des Champs, 92000 Nanterre 01.98.76.54.32 banlieue@lafoir.com t 2025-07-10 10:42:33.03728 2025-07-10 10:42:33.03728 +4 La Foir'Fouille Nord 789 Boulevard du Nord, 59000 Lille 01.11.22.33.44 nord@lafoir.com t 2025-07-10 10:42:33.03728 2025-07-10 10:42:33.03728 +5 Frouard t 2025-07-10 11:47:14.665546 2025-07-10 11:47:14.665546 +\. + + +-- +-- TOC entry 3717 (class 0 OID 57476) +-- Dependencies: 241 +-- Data for Name: suppliers; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.suppliers (id, name, contact, phone, has_dlc, created_at, updated_at, automatic_reconciliation) FROM stdin; +2 Fournisseur Test 2 Marie Martin 01 98 76 54 32 f 2025-07-19 18:54:37.690583 2025-07-19 18:54:37.690583 f +1 Fournisseur Test 1 Jean Dupont 01 23 45 67 89 t 2025-07-19 18:54:37.690583 2025-07-19 22:12:13.102179 f +4 Lidis f 2025-07-25 18:33:20.170431 2025-07-25 18:33:20.170431 f +5 JJA Five Contact JJA Five 01 23 45 67 89 f 2025-07-30 12:59:08.997043 2025-07-30 12:59:08.997043 f +3 Tendance Pierre Dubois 06 12 34 56 78 t 2025-07-20 10:26:02.261353 2025-07-30 16:15:02.260442 f +\. + + +-- +-- TOC entry 3727 (class 0 OID 57552) +-- Dependencies: 251 +-- Data for Name: tasks; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.tasks (id, title, description, assigned_to, due_date, priority, status, store_id, created_at, updated_at, created_by, group_id, start_date, completed_at, completed_by) FROM stdin; +12 qsdf dsfq qsdf 2025-07-19 medium completed \N 2025-07-19 23:35:06.345706 2025-07-23 11:59:19.105207 1 4 \N \N \N +11 qsdqsd qsdqsd 2025-07-19 medium completed \N 2025-07-19 23:25:13.912904 2025-07-23 11:59:20.485895 1 4 \N \N \N +10 qsdqsd qsdqsd 2025-07-19 medium completed \N 2025-07-19 23:25:09.829013 2025-07-23 11:59:21.02293 1 4 \N \N \N +9 qsdqsd qsdq 2025-07-19 medium completed \N 2025-07-19 23:25:05.921267 2025-07-23 11:59:21.755752 1 4 \N \N \N +14 qdfqs dfqsdf 2025-07-19 medium completed \N 2025-07-19 23:35:15.309994 2025-07-23 11:59:14.912705 1 4 \N \N \N +23 dghjf sghff dfgh \N medium completed \N 2025-07-23 11:53:51.842772 2025-07-23 11:59:15.15445 1 4 \N \N \N +6 qqsdq sqd qsdqs 2025-07-19 medium completed \N 2025-07-19 23:24:38.618689 2025-07-23 11:59:22.369856 1 4 \N \N \N +5 qsdqs sqdqsd qsd 2025-07-19 medium completed \N 2025-07-19 23:24:32.108861 2025-07-23 11:59:22.963454 1 4 \N \N \N +13 qsdfsq dsqdf qsdfq 2025-07-19 medium completed \N 2025-07-19 23:35:10.818222 2025-07-23 11:59:16.505726 1 4 \N \N \N +3 wdsfvs dffdsf sdf 2025-07-19 medium completed \N 2025-07-19 22:54:05.102086 2025-07-23 11:59:26.761255 1 4 \N \N \N +24 sdqf qsdf qsdf \N medium pending \N 2025-07-23 11:59:35.323732 2025-07-23 11:59:35.323732 1 4 2025-07-25 00:00:00 \N \N +25 aezrhgsq qsdf azerze 2025-07-24 medium pending \N 2025-07-23 12:00:20.040255 2025-07-23 12:00:29.95404 1 4 2025-07-23 00:00:00 \N \N +26 erfggf qsdf qsdf 2025-07-31 medium pending \N 2025-07-23 12:03:22.50558 2025-07-23 12:03:22.50558 1 4 2025-07-27 00:00:00 \N \N +\. + + +-- +-- TOC entry 3737 (class 0 OID 720923) +-- Dependencies: 261 +-- Data for Name: user_groups; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.user_groups (user_id, group_id, assigned_by, assigned_at) FROM stdin; +directeur_demo 5 admin 2025-07-22 10:38:26.071783 +_1753182518439 5 admin 2025-07-22 11:48:05.588735 +ff292_employee 1 \N 2025-07-22 10:04:06.926158 +manager_demo 1 admin 2025-07-22 10:38:26.071783 +directeur_demo 1 admin 2025-07-22 10:38:26.071783 +_1753185587842 1 \N 2025-07-22 11:59:52.30638 +\. + + +-- +-- TOC entry 3736 (class 0 OID 720910) +-- Dependencies: 260 +-- Data for Name: user_roles; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.user_roles (user_id, role_id, assigned_by, assigned_at) FROM stdin; +\. + + +-- +-- TOC entry 3711 (class 0 OID 57435) +-- Dependencies: 235 +-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: neondb_owner +-- + +COPY public.users (id, username, email, name, first_name, last_name, profile_image_url, password, role, password_changed, created_at, updated_at) FROM stdin; +_1753185587842 707 \N b0729bf3b2fb29e4506a46838d550d59ba3a65b0b7cd59c8e4a4fc61bfe645553494d142e82cebf7a517d3831e610e411a870b357b99f1acb6618465072ae5a3.51fe85612561e5b6e43fb2293758e686 directeur f 2025-07-22 11:59:50.778 2025-07-22 11:59:50.778 +system system system@logiflow.com Utilisateur Système Système \N \N admin t 2025-07-25 19:27:13.379808 2025-07-25 19:27:13.379808 +manager_demo manager manager@logiflow.fr Jean Manager Jean Manager \N $2b$10$K1BL9HqNqFp2/Xb1QgXzDe8XQBOKcNKJ8vDbKcBbCJpWlGsQp3X3W manager f 2025-07-22 10:38:26.043656 2025-07-22 10:38:26.043656 +ff292_employee ff292 ff292@logiflow.com Employee Frouard Employee Frouard \N $2b$10$K1BL9HqNqFp2/Xb1QgXzDe8XQBOKcNKJ8vDbKcBbCJpWlGsQp3X3W employee t 2025-07-22 09:18:48.919512 2025-07-22 09:30:26.116 +_1753182518439 Nicolas nicolas@logiflow.fr Nicolas Directeur Nicolas Directeur \N $2b$10$K1BL9HqNqFp2/Xb1QgXzDe8XQBOKcNKJ8vDbKcBbCJpWlGsQp3X3W directeur t 2025-07-22 11:49:44.596384 2025-07-22 12:07:05.346 +directeur_demo directeur directeur@logiflow.fr Pierre Directeur Pierre Directeur \N 710984331d05d1edeede5de8117f72ee74dcf0450a97ec5f945323a65268849807d0d4e4256192ac8da3f101fb1f54fd7780c91639d946ac1ff4071c0b6592ab.138cf15d1b1d88f6148f180864cb2f51 directeur t 2025-07-22 10:38:26.043656 2025-07-22 12:06:07.324 +1 admin admin@logiflow.com Admin System Michael SCHAL \N e31f77538c9ba3b4f02c74d2599c01c30b20daa1bacd28f66f256a37537542a5872b87219b38f39ec73793edf8caa8bb9c0d0815635f0332b47cf2edc6a389a3.36b85d2975a50844c490936e0afb3ef8 admin f 2025-07-19 18:54:37.64216 2025-08-17 16:02:53.559 +\. + + +-- +-- TOC entry 3778 (class 0 OID 0) +-- Dependencies: 215 +-- Name: calendar_events_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.calendar_events_id_seq', 6, true); + + +-- +-- TOC entry 3779 (class 0 OID 0) +-- Dependencies: 217 +-- Name: client_orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.client_orders_id_seq', 5, true); + + +-- +-- TOC entry 3780 (class 0 OID 0) +-- Dependencies: 219 +-- Name: command_items_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.command_items_id_seq', 14, true); + + +-- +-- TOC entry 3781 (class 0 OID 0) +-- Dependencies: 221 +-- Name: commands_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.commands_id_seq', 8, true); + + +-- +-- TOC entry 3782 (class 0 OID 0) +-- Dependencies: 246 +-- Name: customer_orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.customer_orders_id_seq', 2, true); + + +-- +-- TOC entry 3783 (class 0 OID 0) +-- Dependencies: 223 +-- Name: customers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.customers_id_seq', 8, true); + + +-- +-- TOC entry 3784 (class 0 OID 0) +-- Dependencies: 267 +-- Name: dashboard_messages_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.dashboard_messages_id_seq', 2, true); + + +-- +-- TOC entry 3785 (class 0 OID 0) +-- Dependencies: 258 +-- Name: deliveries_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.deliveries_id_seq', 133, true); + + +-- +-- TOC entry 3786 (class 0 OID 0) +-- Dependencies: 225 +-- Name: delivery_items_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.delivery_items_id_seq', 1, false); + + +-- +-- TOC entry 3787 (class 0 OID 0) +-- Dependencies: 248 +-- Name: dlc_products_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.dlc_products_id_seq', 15, true); + + +-- +-- TOC entry 3788 (class 0 OID 0) +-- Dependencies: 236 +-- Name: groups_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.groups_id_seq', 5, true); + + +-- +-- TOC entry 3789 (class 0 OID 0) +-- Dependencies: 265 +-- Name: invoice_verification_cache_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.invoice_verification_cache_id_seq', 1, false); + + +-- +-- TOC entry 3790 (class 0 OID 0) +-- Dependencies: 263 +-- Name: invoice_verifications_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.invoice_verifications_id_seq', 15, true); + + +-- +-- TOC entry 3791 (class 0 OID 0) +-- Dependencies: 227 +-- Name: invoices_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.invoices_id_seq', 1, false); + + +-- +-- TOC entry 3792 (class 0 OID 0) +-- Dependencies: 238 +-- Name: nocodb_config_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.nocodb_config_id_seq', 1, true); + + +-- +-- TOC entry 3793 (class 0 OID 0) +-- Dependencies: 242 +-- Name: orders_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.orders_id_seq', 9, true); + + +-- +-- TOC entry 3794 (class 0 OID 0) +-- Dependencies: 254 +-- Name: permissions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.permissions_id_seq', 108, true); + + +-- +-- TOC entry 3795 (class 0 OID 0) +-- Dependencies: 244 +-- Name: publicities_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.publicities_id_seq', 10, true); + + +-- +-- TOC entry 3796 (class 0 OID 0) +-- Dependencies: 252 +-- Name: roles_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.roles_id_seq', 11, true); + + +-- +-- TOC entry 3797 (class 0 OID 0) +-- Dependencies: 229 +-- Name: sav_tickets_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.sav_tickets_id_seq', 8, true); + + +-- +-- TOC entry 3798 (class 0 OID 0) +-- Dependencies: 231 +-- Name: stores_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.stores_id_seq', 5, true); + + +-- +-- TOC entry 3799 (class 0 OID 0) +-- Dependencies: 240 +-- Name: suppliers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.suppliers_id_seq', 5, true); + + +-- +-- TOC entry 3800 (class 0 OID 0) +-- Dependencies: 250 +-- Name: tasks_id_seq; Type: SEQUENCE SET; Schema: public; Owner: neondb_owner +-- + +SELECT pg_catalog.setval('public.tasks_id_seq', 26, true); + + +-- +-- TOC entry 3448 (class 2606 OID 24588) +-- Name: calendar_events calendar_events_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.calendar_events + ADD CONSTRAINT calendar_events_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3450 (class 2606 OID 24603) +-- Name: client_orders client_orders_order_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.client_orders + ADD CONSTRAINT client_orders_order_number_unique UNIQUE (order_number); + + +-- +-- TOC entry 3452 (class 2606 OID 24601) +-- Name: client_orders client_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.client_orders + ADD CONSTRAINT client_orders_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3454 (class 2606 OID 24612) +-- Name: command_items command_items_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.command_items + ADD CONSTRAINT command_items_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3456 (class 2606 OID 24627) +-- Name: commands commands_command_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.commands + ADD CONSTRAINT commands_command_number_unique UNIQUE (command_number); + + +-- +-- TOC entry 3458 (class 2606 OID 24625) +-- Name: commands commands_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.commands + ADD CONSTRAINT commands_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3497 (class 2606 OID 57540) +-- Name: customer_orders customer_orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.customer_orders + ADD CONSTRAINT customer_orders_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3460 (class 2606 OID 24638) +-- Name: customers customers_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.customers + ADD CONSTRAINT customers_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3539 (class 2606 OID 2342922) +-- Name: dashboard_messages dashboard_messages_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.dashboard_messages + ADD CONSTRAINT dashboard_messages_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3525 (class 2606 OID 819224) +-- Name: database_backups database_backups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.database_backups + ADD CONSTRAINT database_backups_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3516 (class 2606 OID 73746) +-- Name: deliveries deliveries_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.deliveries + ADD CONSTRAINT deliveries_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3462 (class 2606 OID 24662) +-- Name: delivery_items delivery_items_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.delivery_items + ADD CONSTRAINT delivery_items_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3499 (class 2606 OID 57550) +-- Name: dlc_products dlc_products_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.dlc_products + ADD CONSTRAINT dlc_products_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3485 (class 2606 OID 57462) +-- Name: groups groups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.groups + ADD CONSTRAINT groups_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3535 (class 2606 OID 2310156) +-- Name: invoice_verification_cache invoice_verification_cache_cache_key_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verification_cache + ADD CONSTRAINT invoice_verification_cache_cache_key_key UNIQUE (cache_key); + + +-- +-- TOC entry 3537 (class 2606 OID 2310154) +-- Name: invoice_verification_cache invoice_verification_cache_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verification_cache + ADD CONSTRAINT invoice_verification_cache_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3529 (class 2606 OID 2285579) +-- Name: invoice_verifications invoice_verifications_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verifications + ADD CONSTRAINT invoice_verifications_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3464 (class 2606 OID 24690) +-- Name: invoices invoices_invoice_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoices + ADD CONSTRAINT invoices_invoice_number_unique UNIQUE (invoice_number); + + +-- +-- TOC entry 3466 (class 2606 OID 24688) +-- Name: invoices invoices_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoices + ADD CONSTRAINT invoices_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3487 (class 2606 OID 57474) +-- Name: nocodb_config nocodb_config_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.nocodb_config + ADD CONSTRAINT nocodb_config_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3491 (class 2606 OID 57498) +-- Name: orders orders_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.orders + ADD CONSTRAINT orders_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3508 (class 2606 OID 57592) +-- Name: permissions permissions_name_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.permissions + ADD CONSTRAINT permissions_name_key UNIQUE (name); + + +-- +-- TOC entry 3510 (class 2606 OID 57590) +-- Name: permissions permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.permissions + ADD CONSTRAINT permissions_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3493 (class 2606 OID 57522) +-- Name: publicities publicities_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.publicities + ADD CONSTRAINT publicities_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3495 (class 2606 OID 57524) +-- Name: publicities publicities_pub_number_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.publicities + ADD CONSTRAINT publicities_pub_number_key UNIQUE (pub_number); + + +-- +-- TOC entry 3514 (class 2606 OID 57620) +-- Name: publicity_participations publicity_participations_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.publicity_participations + ADD CONSTRAINT publicity_participations_pkey PRIMARY KEY (publicity_id, group_id); + + +-- +-- TOC entry 3512 (class 2606 OID 57614) +-- Name: role_permissions role_permissions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.role_permissions + ADD CONSTRAINT role_permissions_pkey PRIMARY KEY (role_id, permission_id); + + +-- +-- TOC entry 3504 (class 2606 OID 57579) +-- Name: roles roles_name_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.roles + ADD CONSTRAINT roles_name_key UNIQUE (name); + + +-- +-- TOC entry 3506 (class 2606 OID 57577) +-- Name: roles roles_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.roles + ADD CONSTRAINT roles_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3468 (class 2606 OID 24703) +-- Name: sav_tickets sav_tickets_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.sav_tickets + ADD CONSTRAINT sav_tickets_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3470 (class 2606 OID 24705) +-- Name: sav_tickets sav_tickets_ticket_number_unique; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.sav_tickets + ADD CONSTRAINT sav_tickets_ticket_number_unique UNIQUE (ticket_number); + + +-- +-- TOC entry 3475 (class 2606 OID 32776) +-- Name: session session_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.session + ADD CONSTRAINT session_pkey PRIMARY KEY (sid); + + +-- +-- TOC entry 3478 (class 2606 OID 57433) +-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.sessions + ADD CONSTRAINT sessions_pkey PRIMARY KEY (sid); + + +-- +-- TOC entry 3472 (class 2606 OID 24717) +-- Name: stores stores_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.stores + ADD CONSTRAINT stores_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3489 (class 2606 OID 57486) +-- Name: suppliers suppliers_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.suppliers + ADD CONSTRAINT suppliers_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3502 (class 2606 OID 57563) +-- Name: tasks tasks_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.tasks + ADD CONSTRAINT tasks_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3523 (class 2606 OID 720930) +-- Name: user_groups user_groups_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.user_groups + ADD CONSTRAINT user_groups_pkey PRIMARY KEY (user_id, group_id); + + +-- +-- TOC entry 3521 (class 2606 OID 720917) +-- Name: user_roles user_roles_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.user_roles + ADD CONSTRAINT user_roles_pkey PRIMARY KEY (user_id, role_id); + + +-- +-- TOC entry 3481 (class 2606 OID 57445) +-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + + +-- +-- TOC entry 3483 (class 2606 OID 57447) +-- Name: users users_username_key; Type: CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_username_key UNIQUE (username); + + +-- +-- TOC entry 3473 (class 1259 OID 32777) +-- Name: IDX_session_expire; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX "IDX_session_expire" ON public.session USING btree (expire); + + +-- +-- TOC entry 3530 (class 1259 OID 2310157) +-- Name: idx_cache_key; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_cache_key ON public.invoice_verification_cache USING btree (cache_key); + + +-- +-- TOC entry 3540 (class 1259 OID 2342923) +-- Name: idx_dashboard_messages_created_at; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_dashboard_messages_created_at ON public.dashboard_messages USING btree (created_at DESC); + + +-- +-- TOC entry 3541 (class 1259 OID 2342925) +-- Name: idx_dashboard_messages_created_by; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_dashboard_messages_created_by ON public.dashboard_messages USING btree (created_by); + + +-- +-- TOC entry 3542 (class 1259 OID 2342924) +-- Name: idx_dashboard_messages_store_id; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_dashboard_messages_store_id ON public.dashboard_messages USING btree (store_id); + + +-- +-- TOC entry 3531 (class 1259 OID 2310160) +-- Name: idx_delivery_id; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_delivery_id ON public.invoice_verification_cache USING btree (delivery_id); + + +-- +-- TOC entry 3500 (class 1259 OID 2334721) +-- Name: idx_dlc_products_stock_epuise; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_dlc_products_stock_epuise ON public.dlc_products USING btree (stock_epuise); + + +-- +-- TOC entry 3532 (class 1259 OID 2310159) +-- Name: idx_expires_at; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_expires_at ON public.invoice_verification_cache USING btree (expires_at); + + +-- +-- TOC entry 3533 (class 1259 OID 2310158) +-- Name: idx_group_invoice; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_group_invoice ON public.invoice_verification_cache USING btree (group_id, invoice_reference); + + +-- +-- TOC entry 3476 (class 1259 OID 57434) +-- Name: idx_session_expire; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_session_expire ON public.sessions USING btree (expire); + + +-- +-- TOC entry 3517 (class 1259 OID 720946) +-- Name: idx_user_roles_assigned_by; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_user_roles_assigned_by ON public.user_roles USING btree (assigned_by); + + +-- +-- TOC entry 3518 (class 1259 OID 720945) +-- Name: idx_user_roles_role_id; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_user_roles_role_id ON public.user_roles USING btree (role_id); + + +-- +-- TOC entry 3519 (class 1259 OID 720944) +-- Name: idx_user_roles_user_id; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX idx_user_roles_user_id ON public.user_roles USING btree (user_id); + + +-- +-- TOC entry 3526 (class 1259 OID 2285590) +-- Name: invoice_verifications_delivery_idx; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX invoice_verifications_delivery_idx ON public.invoice_verifications USING btree (delivery_id); + + +-- +-- TOC entry 3527 (class 1259 OID 2285591) +-- Name: invoice_verifications_invoice_ref_idx; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE INDEX invoice_verifications_invoice_ref_idx ON public.invoice_verifications USING btree (invoice_reference, group_id); + + +-- +-- TOC entry 3479 (class 1259 OID 319488) +-- Name: users_email_unique; Type: INDEX; Schema: public; Owner: neondb_owner +-- + +CREATE UNIQUE INDEX users_email_unique ON public.users USING btree (email) WHERE (email IS NOT NULL); + + +-- +-- TOC entry 3546 (class 2606 OID 2285580) +-- Name: invoice_verifications invoice_verifications_delivery_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verifications + ADD CONSTRAINT invoice_verifications_delivery_id_fkey FOREIGN KEY (delivery_id) REFERENCES public.deliveries(id) ON DELETE CASCADE; + + +-- +-- TOC entry 3547 (class 2606 OID 2285585) +-- Name: invoice_verifications invoice_verifications_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.invoice_verifications + ADD CONSTRAINT invoice_verifications_group_id_fkey FOREIGN KEY (group_id) REFERENCES public.groups(id) ON DELETE CASCADE; + + +-- +-- TOC entry 3543 (class 2606 OID 2269185) +-- Name: tasks tasks_completed_by_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.tasks + ADD CONSTRAINT tasks_completed_by_fkey FOREIGN KEY (completed_by) REFERENCES public.users(id) ON DELETE SET NULL; + + +-- +-- TOC entry 3545 (class 2606 OID 720931) +-- Name: user_groups user_groups_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.user_groups + ADD CONSTRAINT user_groups_group_id_fkey FOREIGN KEY (group_id) REFERENCES public.groups(id) ON DELETE CASCADE; + + +-- +-- TOC entry 3544 (class 2606 OID 720918) +-- Name: user_roles user_roles_role_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: neondb_owner +-- + +ALTER TABLE ONLY public.user_roles + ADD CONSTRAINT user_roles_role_id_fkey FOREIGN KEY (role_id) REFERENCES public.roles(id) ON DELETE CASCADE; + + +-- +-- TOC entry 3751 (class 0 OID 0) +-- Dependencies: 3750 +-- Name: DATABASE neondb; Type: ACL; Schema: -; Owner: neondb_owner +-- + +GRANT ALL ON DATABASE neondb TO neon_superuser; + + +-- +-- TOC entry 2181 (class 826 OID 16392) +-- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: public; Owner: cloud_admin +-- + +ALTER DEFAULT PRIVILEGES FOR ROLE cloud_admin IN SCHEMA public GRANT ALL ON SEQUENCES TO neon_superuser WITH GRANT OPTION; + + +-- +-- TOC entry 2180 (class 826 OID 16391) +-- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: public; Owner: cloud_admin +-- + +ALTER DEFAULT PRIVILEGES FOR ROLE cloud_admin IN SCHEMA public GRANT ALL ON TABLES TO neon_superuser WITH GRANT OPTION; + + +-- Completed on 2025-09-02 02:46:20 UTC + +-- +-- PostgreSQL database dump complete +-- + From 989b2c8c4062c6ccde1ef52a24571f3e737abc50 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 2 Sep 2025 07:34:30 +0000 Subject: [PATCH 2/2] Grant task creation permissions to managers Update shared/permissions.ts to add 'create' permission to manager role for tasks module. Also, add a permission check in server/routes.ts before creating a task. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f2b9c241-9fdd-4abd-9041-720afc8b27d6 Replit-Commit-Checkpoint-Type: full_checkpoint --- server/routes.ts | 5 +++++ shared/permissions.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index 843cc9d..ec6e7bf 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1645,6 +1645,11 @@ export async function registerRoutes(app: Express): Promise { return res.status(404).json({ message: "User not found" }); } + // Check permissions for creating tasks + if (!hasPermission(user.role, 'tasks', 'create')) { + return res.status(403).json({ message: "Permission denied: cannot create tasks" }); + } + const data = { ...req.body, createdBy: user.id, diff --git a/shared/permissions.ts b/shared/permissions.ts index 4b54fed..c978306 100644 --- a/shared/permissions.ts +++ b/shared/permissions.ts @@ -80,11 +80,11 @@ const PERMISSIONS: Record> = { employee: ['view', 'create'] }, - // Tâches - Admin/Directeur tout, Manager view + validate, Employé view seulement + // Tâches - Admin/Directeur tout, Manager view + create + edit + validate, Employé view seulement tasks: { admin: ['view', 'create', 'edit', 'delete', 'validate'], directeur: ['view', 'create', 'edit', 'delete', 'validate'], - manager: ['view', 'validate'], + manager: ['view', 'create', 'edit', 'validate'], employee: ['view'] } };