From ea841e4d54ce4bced7d8dbc19fc64161f406e3fd Mon Sep 17 00:00:00 2001 From: Kobe Date: Mon, 2 Jun 2025 21:11:13 +0200 Subject: [PATCH] final migration issues fixed --- .../444d76da74ba_add_notifications_table.py | 23 ++++++- ...achment_fields_to_message_.cpython-311.pyc | Bin 2748 -> 3694 bytes ..._is_admin_to_contact_model.cpython-311.pyc | Bin 1644 -> 2442 bytes ...ba_add_notifications_table.cpython-311.pyc | Bin 2330 -> 3859 bytes ...ile_table_for_file_folder_.cpython-311.pyc | Bin 3508 -> 3833 bytes ..._column_to_room_file_table.cpython-311.pyc | Bin 3238 -> 4186 bytes ...any_information_fields_to_.cpython-311.pyc | Bin 4031 -> 4641 bytes ...dd_deleted_by_to_room_file.cpython-311.pyc | Bin 2228 -> 2687 bytes ...eleted_column_to_room_file.cpython-311.pyc | Bin 1728 -> 2179 bytes ...d_granular_permissions_to_.cpython-311.pyc | Bin 2335 -> 2814 bytes ...dd_profile_picture_to_user.cpython-311.pyc | Bin 4579 -> 5056 bytes ...dd_last_name_to_user_model.cpython-311.pyc | Bin 2104 -> 2462 bytes ..._add_email_templates_table.cpython-311.pyc | Bin 6136 -> 4651 bytes ...assword_hash_column_length.cpython-311.pyc | Bin 1868 -> 2684 bytes ...5d2d3ed0_add_contact_model.cpython-311.pyc | Bin 4185 -> 4680 bytes ...888_add_company_logo_field.cpython-311.pyc | Bin 1666 -> 2117 bytes .../c770e08966b4_add_email_templates_table.py | 65 ++++++++---------- 17 files changed, 51 insertions(+), 37 deletions(-) diff --git a/migrations/versions/444d76da74ba_add_notifications_table.py b/migrations/versions/444d76da74ba_add_notifications_table.py index 1f36179..c01a54c 100644 --- a/migrations/versions/444d76da74ba_add_notifications_table.py +++ b/migrations/versions/444d76da74ba_add_notifications_table.py @@ -19,7 +19,25 @@ depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('template_variables') + conn = op.get_bind() + inspector = inspect(conn) + tables = inspector.get_table_names() + + if 'template_variables' in tables: + op.drop_table('template_variables') + + op.create_table('notification', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.Column('title', sa.String(length=200), nullable=False), + sa.Column('message', sa.Text(), nullable=False), + sa.Column('type', sa.String(length=50), nullable=False), + sa.Column('read', sa.Boolean(), nullable=False, server_default='false'), + sa.Column('created_at', sa.DateTime(), nullable=True), + sa.Column('updated_at', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['user_id'], ['user.id'], ), + sa.PrimaryKeyConstraint('id') + ) # ### end Alembic commands ### @@ -29,6 +47,9 @@ def downgrade(): inspector = inspect(conn) tables = inspector.get_table_names() + if 'notification' in tables: + op.drop_table('notification') + if 'template_variables' not in tables: op.create_table('template_variables', sa.Column('id', sa.INTEGER(), autoincrement=True, nullable=False), diff --git a/migrations/versions/__pycache__/0f48943140fa_add_file_attachment_fields_to_message_.cpython-311.pyc b/migrations/versions/__pycache__/0f48943140fa_add_file_attachment_fields_to_message_.cpython-311.pyc index 6bd3a2ea0fe351a003782479ccdbd95321a9aa96..23a35ae2b78404ef4ef93ebbbf2f68e3804a4eef 100644 GIT binary patch literal 3694 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 JSXW^i{{X{gSW5r^ diff --git a/migrations/versions/__pycache__/25da158dd705_add_is_admin_to_contact_model.cpython-311.pyc b/migrations/versions/__pycache__/25da158dd705_add_is_admin_to_contact_model.cpython-311.pyc index ef34f796df4c90246ede4cbfa7c76ef61477cc14..e2a6effd28afd75c2fbcdd405e13e233952acaaa 100644 GIT binary patch literal 2442 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 delta 939 zcmb_aO=}cE5bd6wo$P$BS%+X&h_b}26Hy@&Pbxw{5H%MCy$$1bCz&uGYfq2SlOFs5 zLVNP&B_gh3$e+-Y5xm%Uh1>!;>B;H|yC50~Xfdy-uC97r)I2fuyyd-gT?>KPn-^Cm zj16xN+ch{U?4Cj58g7d(xHV7EO%!O0vc+lIPa;mk`w@$yy9q4E8PN|+ zV*U>jYe-`M!z9k%NNNY%iOUZQyEg5UKQxF9%b$f^kJg0Hs`_`85%1R(4w|BCcOM;E zWG388Ehe|F1e$cClIL;OV>G21myN7U5+xfsp5;7VihB`{^DN{K`*eE_8Urkigl5Zp zMY==Tg;|tRX%kxXSln0j+wavIE`1PzLX|#~l1d9683VbJFyi8a-NCMSR-c)4Agx4P zsa0x4B#nhUDbq~&PDdOwCUl9H0&(8x9A&PeHA%jfEwhMFHVfxAptvgD8fQ1(Ia3%r z;-eej2fm9Q(0AB_uXPRfK{V&}v?Z|#(ZPwt?RbDG%NLBG3-;3sKN Bz>oj{ diff --git a/migrations/versions/__pycache__/64b5c28510b0_add_room_file_table_for_file_folder_.cpython-311.pyc b/migrations/versions/__pycache__/64b5c28510b0_add_room_file_table_for_file_folder_.cpython-311.pyc index 80493716d5e78aaa427e3389bc4d58794496e01e..8bd0500b2681e5e0f65e8995082272a2e8d8574e 100644 GIT binary patch delta 870 zcmZuvK~EDw6n@ifyQSUTq817iq#!gQC`u7LPnObUZdkAey<+{aXw6#JYpYwnU>mVh7=f+^uG?M>$NxGA zteA8G{qQ2f8<>PF+;=XLETPa?tp`}Othlh8FbSni=&~4=o@<5>PbD<-qx^|DJaXg= zC8o7ZJe5p`pZaFglPpHno=_qck0rD)lH*`ER%p!#%b+V`m9?h5)Lsv)ESw037zh5q z-q>s?X{J6>8B^)R+_XBsNesIdpHh>tu5+B*-%74YH8X*&%qC|vepzfIHhxEJ>KCh$ z;dmI!#HS`wY0ZXb`b}d#WQJI6k`3U_gRVt#2jX+GRP=*;oM12O(|duz-N2w8x|DwOPmpprte^>JB zZM}IZSdfCc6f6oDD<_oUr?AJpv6p>%EH9aKjAyeExogJf)qeN79Wh2 zB9g+eMsyhy1H)<{h5%EBTIL$&1^knDu|_dzicgke>zh26T~cNx<1M!0T*;xp$TE2rhm-(EQesJRMtpujF$>U41%=5!*#bpw zv6mL47bT{o7U=;6MS!@NZ}UrzCdT@&G7MZiS2$%a$eABtxxndqk<;}Gr|Sm>Mppe3 z5;r&mu5-v-;*hx@t9y|{?+SlgoGv#npk#TU?1LDe=kqIi7&-6`tka@@FYai5#0EZ7s!EEv=ZM{(t-v*p_4qL4-yU+J;C$P@IiScgbaE zS9a{m01r8|fDcJgzzX1l0=TLL>EHq>kZTSOdL#t`CKm9i$iX)n^1<+>eQ!ywxDuHb zK`$N6ew?4T@4b05`@Yd%{eCZj^7Pro8^87u@=xqEiml$*Uxda3LP>&9j@o1{YfIQT zY};jf!U4Yy*`9SKoW___c4hel4{cY%P5Fd}+7n)QeAN9pNeI*f=%@B267}9KT&7f1 zwG?9#71N5mmd%NpA~HqECO^%{lBlItWXbDYlx}6zjFJ=QXQsvR@v)(ik>SzFNjg=V zk<@8%MH>2aVujM7xHROw%A}Mgi8BDx;&6O;>|A{8-0-M4G&wyqIz2KO8ySvIO-*^d zFK~%bPPZxf1^D4JIW;e(HE4SCimI(LN&TIy3(Y2Vq1jZr9wXz&4QPjFKLq%IXxzc% zO|!iPgFEKLJ)$|y4p}E#Ah%=6-s33uIa%j6QR|UHZC2?Sa!9w$;(?=~fZ8b8wQs@p z?liWTjFEeG>R7kk;@J6h`(~3*jkgHV{0Hrue4|YrmT`=MQLMgD=dNoDRRO@R!*bNOD{MhjcFf3t7k!ae>27c>4{E6t zyC5s+l&oHYMq~0MnBNZp6iBgSzE(HXKd4`f-~YWiu#d~oJ*F90iAzo2kg_SAuY0o$ ziN~E=lVwbMx+9;`ZoI(Ypr|b6R-yYZP%^h|*ZtCGU_FytO=@@YlI}!I>RsmOffhA$ zSJHiJd07GPX>#SxwvFLlGxWM?BBe#U7=E6*dsWhsE14W+xG}m9yR|r}de=%yOW#PQ zWKCkVKaHb?!2)#GmHBJ) z3(Gn`pVOpOi9uswdG^}uBEvMKdzR-voLySJ{NXRQ9l9f}h`{)07@&3ia%=69@8;&pifA$yVE5`P1W}fw* z-|IjB?FXg)>*fCIu!p6N`Etj6;o1)#U)ghNELL4acoEK|XZZ7V=uxN=601(b zu+881iU3p%fOWKfZ=f6=D}^V@;fZ#yMj?Ji5Dj>V;e3T~FxIy9`t|F!bH;>}^AEIcJx{oCHLlh0kx<<<#w(uEn>!HZz14E$T0b`;|ON}=GeQ~j3D#@EHfm3hJ4RXAp{Y65KaI@j~U#= z`f&g=Jo_2K&k@cc;6AbugtG|42tx>Qgh7NDfbOGA$=B(Mjl#$wzVMh!Vi#d{3?=sd z=Zw+qd=DApWXnw3oH4^@vW;M}jbO5kAZfHtwm=%SB;EGCwq%3v87%Wv@L}*r*rA<* zz>`QZJYEWqm&4-*%RC+}2I8eayc~%C2wNTB;ETRqs0R6odxE$bCDn<|r6n G`@aElLx!6G literal 3238 zcmb_eTWcFf6rR;>FOqyoq9%>KwsKW$oY<1=_(EH7Y$x@DMX^o6vSC?iHn!50R-IiZ zacIF0{R4qO5^%v!Zj4=MA%*?`KlD)wf{2Acq4Xhd3duvrOM7M|t+ck|hPJESZ_mt} zIp@sTIp64qU{FAC{r=;pD`Ol&f6zw#a@B;_vmiV~7$p&AuuEmKuB3~hvRid0J@EFZ z?yNWIwfelOFUuxbkbOxGvq>JilL9<`%zcNF0n7siv3m~n2=~^?BUj?Ffzi=XL3l}**u$7EEuVlF zo5|^UC2fEx276?1_2Ev|Q?-oR~L!+{;Er?^sj)kFK zef6>CH}*N~+c98vmvh>1=+O*V7v}ftVPV(51@Z6LYdFGtz+siITXn9^p<``hs^`>! z41BoPpu?j7aIavo#hKG1*3oKwT(^SItzca~5aR)h7|IPJ=PrSgLUZUGiXz=}$931e zfbK91T0ji^=txgn!sPAR*=9_io?cP1vdPv;Y##PCms?d;T2-beFB>Z_5qu7+sw%l< zX#NEuUf*_`LFH~nH!`_p$ym!PrkA2*w%ff8D|+UhV)|F}swQIvOR2SO7dZh|2wiQ{ zfNb=%5V{Y|_LOX-S0q_A6e3v_ZVEESQk4KqmoA&W35yI&_L`=tikve8RqdJz`{nrT z#OLF)rf<$55Txn5Hhp6{F>kWdIYU`i2ndP!sT)(XgjR;h&ri=x&CQR`d;v@4s_wPC zPU|52F3~UN^ZnV(GLa477`^|tLMYkj{mo@B(FkjKtVJprnq;TDx{xdRHIrSw9#Ia31U5+yEC;1ZUq_>2=D-FzW-ZzP`>1#z$_4wl5h7on367BQh;M(+HEb+AUffuulau$C9xRp5T(Dw+rqD}AEzZ=+hxHPZV zrg$9OuLq=jnD?gH^;{u@Tbw>9dHxHsZA}mwIH6II(*V~A<$7|8!byO6a-51S6zCo# zZ4_E51OR#h78{Zd+7YHesft{rAX2zM;XH+N6wXpO17P|w(egD8A`$4R5*g{CgFM#m zt?urMv$}zVs#Nfg%2mdq$`)1KUwp9m z0c>NOA{QxfkpdT~bhmne2kSto z2Dq`_Yz!PG)u^Uv`aZ2H)l8h7^ttzZo=Jh-3o?K`EhZ~TSW8Qi$;zsdO=Z&6lTd(v zm$FI^>9y)NrzBw>Z}eWl8JLhZ^y)drk=h?&Ge|$P)M%!NoP#qJPIg7rO#v%;C5LrM z%UP!op<7`ay#_?qHhIT=lGX64s(eO9ppPDe`h9?kn_-xW%g1;sh(ZfuP8QHd&373= zPwg(Fu7dL}quzq^hV2qKz0Q@}y4Hi`wi5us_I07+YiEGoZRl%fAg>333`10Z1Ma@B A6#xJL diff --git a/migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-311.pyc b/migrations/versions/__pycache__/787468cfea77_add_company_information_fields_to_.cpython-311.pyc index 8980c016ee97da1f0b77640d39328df8fc1ab0de..d176baf9d815dfee7d006abbfc87978e66009ed3 100644 GIT binary patch literal 4641 zcmb_gO>7&-6`mz2a=E*d_1DUBEPIm{N*P-uEk&XwS}Ix@2~tOvA*Ep#cimM;=-?fqlp^2k8(b1q1{IW{m|*EYMStgKrEJ6oyZI!+$Db zs?Z$`KfZnQX6AeQM(>UE_eg|8&=&qVvvG3A)_hgr;4KjDBaG4rGuWpwIbYhx zP}#5f(*gJnX#QMRx(jq&=^zfKL)f2Y;SpT~cj3tFK!ex2WFCTGZg3%hO`=V)D(&i^`fRCzF*C z)tVNk)?_)8RM#dGn zHrUqMHhKtlkLtE}8O(fuwwVH5^*aswTCFdmLu>n57zAnyU>`=0{SP6Uk7^M`6X>oV z2ey4T8FOaaUufb~n}v`aX~^$~YBCPA=-Ily>v6D^9}YccAA%>3>fW@D!)Xb3#30;; z0oMToz9R;F8wNrL3?dydh_qqQNff#}V$j`&K_^i-(Gi0a|3?Nr9Wm%>!=RIM(AyD% z-Zl(6i9%nQLFxzQgT599G$)o@Yi>G5F6i&b|NfTU8`-E6|DnQR)S4$DN1-M36LbMt zfm^=Y{_E%#!=USkfgd^&9k{C0(>M4{lWsqJ4$c7FN9$-CEpvC7Z3d$u&{Wz-zI!}O zWxRkc=hRP7)aUtP3D2(>nng3TD89H7m-G2}F1v1)YoisvshYF~TJh%EB*_>{)lw=o zl~SovN+sKnV)?BX+$Ak*+0<_K&MTXFSQD$UOPZm`nl%eTZSW-QZJh?#L8N=W(jQoV zvi>}I?+GB(fu09)}y85Evuc=y=C)A9Tti9D(#e+j;Df+Nk-tQC-YJ&D zSI9mcNj(`!eYW6?yz7p<3o&%M=iTo4owvUZ^KN+ff$=FO;gl0jx#3g^4Roo@XSa*| z>B8HDKL@=i3_KOiJ`v9T&G*+Zc_X#AxO;tHAv254%%VH9NS0+HW*jl&0t$*NC`3?- z{Hen0gpWdRnf`HnZ)|sJe~zTCIjL)I>KeHr5pmTKS6x6sb_JOT^8c9qOOje}QVVWs zfuvW6C^@3!0t&0Huu6p0m!>{c7$p49ptn+w?Y*`e-5)2@3(oX{JKb*cmvj7NAw+n1 zbFa7VJ-XMoJGB2AnVNT|=H01z^4s4LaoG`9oAMd_wv5gC@0XuHfByXjl~Ic(=Fd<5Dtsm8|0))^ zG8X!3f&o-OU2j2<=x_c33z@jxogV(;L63c{l>%|w-_Slx;V_R~^w&ag(DIB(>HU0-z`N&nX2jXb0?5N9*5_YtqTXER)E_X;1FH|-=l!|zlCYsjk{6OSHJ8aMmHN+F zzt?1qUTwC_5tv)K2C!!JUlLw~hD&NZW=vU!I{{p8RL$}@tmai6Tauxd>vlP$CjEzt zd4dA1>@V0$IRkHM>Z~~hkMt;5e*`G`8HOqOf=r-D-~#hx=ekz&sPK%{qvD+Nz6H0L(qtiZqv|1Oj{{uj#B@+trT literal 4031 zcmc&%-EY%Y6u-{rO`1SU`50hO1{+cZC84Epn{G&35mG5C8fA0|Eyl@psgYx6wo576 zq-xs3_7}jzCh^3C%A`Gjv`Ixm;-%v08d+N9r%BTu`qrs?Ks@c-IBAluL0LyN$NBl( zbI-Zw`q=k(u78NfqX>@Qe*AFyK1S$w)~Fu7im-MLgu95K93mX?sa(;Q^Kne}tNvU7 zt^w6w4CaEM3+6&3lnWDo4#Ph}!e66YlwiO%;vYj@kvrdhL`b5b7fX^hmr%4R-6%?y zqHBpMMOKNKu=K>3V##B&WhvSXGa9`l-%?CwFnl(X5c-AF>Hfl$ED3_wBb%ATz?3BA z1$io+>P<(73|X?|#94q$q9@hU*PZI??nx(3r81{`GN*)-J^eyoIvtI!u>0%cT%TSV zg-ck`%#vKN+*o}OH&#D*p^}pFB?9P&|Jr*&mLH3&b>3W;Av@@i?*Zg;p_)(BhrUE# zp!@6Xnjb<|xYoKEsLI6Opoe(gK?0A04104>>nv z7N+H*TDiLDHrs>A2js?Y%fn?&&`f8X2@BgHB{{6-9#*_w(&#-2N**_!1xd{^Re4 z=`rEyuEqUJN9n+*JuvDFjMD5R<*(WNH3txj4i+gE8+`8TPmITNOMWU`u!RebaDk3r zrTm1=PdI>h(!rAyPj2Soqr!+Sj5xvwy^^E+Rhz%+0OAP;Pf$G3;IgHeX;1Qxm1ibR zkJ#xEC*4Art=vrU$)(5HXL;H;Z1)X2eZ%zfXOz#{eAWTPIS1z`&i&_`p~nWFURoUg zCA*lVpL|OBD>i?{0mS1D9;bMGLxBFLM;5!5dTHjOow?{_F4EjJ%8NEHI)M1PgRfJ3 zeRU6e2fR1I!#~S!#b0Ht*S}eQ_3G7|4ZL1+7rc>ohu=LP^uGuO&PT#8VjN%rwCe{W zOSZ(;Fub^LYuiQqt!|S@pk>PqTeId{FA{2b%y7$=xMj;o%a+lWE!$eQjBT{sQfY~g z8u0ys47MpZ_A_{g!9E6i8SG)e2+!zb(7|9QgEoLJf0?z710cI?#L!C>qBats@p#xc z!a5^FpVd4DJqGRfS@${M>81>tst_pu67%#>(#9zVrzlR9SEHxwv2m}1dnxX%Q=YVO z(!oiJlk3WRlQur?;Nuh@ujyc|c00J6;_jLbc=&{aPf&bfT}KaXHsEH?o9ODD86%|F zYW0B8L5i_KovzlqL8`Dob5n2q4|NU+{^vqqXfXWz3<@VhG@s9cEYAD7rwynb>F%Hu8PcV`&jlTh0PE-&8 diff --git a/migrations/versions/__pycache__/add_deleted_by_to_room_file.cpython-311.pyc b/migrations/versions/__pycache__/add_deleted_by_to_room_file.cpython-311.pyc index d1eff4fad7125e6fff880cf299649a599781886b..dd83766cc019ad775facc2e1e146c6ecda6090ab 100644 GIT binary patch delta 1242 zcmb7EO-vI}5PthdyWMU15kW+tCD^1&2nPgXX%AWhjfqjA+!RaSS_*Bq*YSP5XzHjHvH*aP-^R}<+ ze>GYjo6RPGq~Wt`a)WtknI*_3QoX_)?ps3EXPD9@0TiaB0}uyG1Y*%DNP>XGEf6Qv zcT97VtmHi4uSle_e-3~tx)cMF5Im=rNE8>Xf}8*e3es_MmXMrrYO$<>k_P~a`Hwzj z0HC+9g>(gBEICyc1DWSFY8}~r6&n68OEHO|A_-eHNr#PE)O%g>D!ri*vXBlE(4>AO zhkV@mKv{zTZqNa=cG?l#2SL>Q%ccYoCm?7kMF0zAni~NQLZhSpi0~9RNR902)u@0N zmT@<&>KE$N$ew919FmoQ7>T)Ww9dqWk{=2^gJCh?56f<(l*lG@L_UHb1+o@z;mOFi z<-7gqoBM_xoL#M@0-c;hAyqR51!a696onG5S>x~)6)+Qt%IbCMQqntW1a7KL_TDnbiXB6O)LB=|4GSOM|0NEJVM@==Y3h; zSM?OPVqP_8FN|ibzMRGC%cB=RmgmQ^{FwTH?o4txb0L2Lf9SRR)Un)NUEkf^t?p1@ zWqgm`A3EJ~#!aocX%AUr_`nbz^3_>}A^PhODb-`Zt-c9}~u< zgP6uq9JD@jsZ~wY*c=W*I*N=kzPH7>u~3|g>K9DvMphf9-vIR(-Ku`C`9`#8<@nI zS=O*lp2Z|*SHrM?38oO4M$v*WiVa1a4cRCqpixNnBMeJnPvJ;mPG?NvoE*XI&cx+6 zxsfHAjiZPesAMu5Ymned##r2ixN{(i==@2kk{m%-ID#&41Wit1Q>tfYW=&!Izg4th?M37~1 zv48ydflCTmycp!O=}v-9rp$*-S)44{Sr6GTI$3V!W@lyO<^akSae@fG$LcAa* zH;~X|0S8}^;AA%rMa3cspb$9Z6pEyP%v+o(`Q>?#z*7YBr5AT`Ffs~H?&h>r1O;Xh xNN^>?XCTP{*6@qNCO1E&G$+-rNPF@d&Qv{CMo0I(k3D*)x?9|2!@oMrL=5!o7t@zZPO+i zqe%~vHGyLj6(wMl1QU+R$%Dq0G=XeF!o|cR1`mXjGi|qk_%ieD%s217c|WtC#m6n4 zx1!hxh-`ifPGD})6NA|}1YjB%1Z|;ARc6U&-rj%=FdX#_NP}6TH(%GyKm?zFG%T=t zI(sX`9Mm2JHQ!fiIvEDBY33fpi36cxJqRj#j z=j}COjs3h}^9K_{4%D!~n-1poFamdgU$`aJ(;^l$hNEO|cMzBcQIh)I#tckD1WpmA zDpO3}MNFZ^sgZ;{2mFl1^qsd@NmFzhu-E*>gtEJh{Yp$XBrTB)J#0%Qqd0=(zJ5iM zB8na&3;XZ{G11!zlA&RXuPIo6Y1)DciRmwon<&sG?F#(~4W$%0gnP~22Dwjwv>f~JBn!`Ofx}So@fWnz B1*ZT2 delta 575 zcmZn`JiyDhoR^o20SF$fwawVaypb=Hk@3#tN37mXCF~$!2*_fAu~L{(#93kD%Ycm4 zFb+csOA6~6w#ofWL5iB}ez!P_^7C`!(=u~XS2EsWD^AWx%}u<;o|2lAT9TSF`4zJ& z8(R@GQ1fI%7860B5{{(AlH`o|{DNXekf=4YUHvWg(t`A&#FW$`aiEY85Et(P5)BMb zIk~TJ%Ff8%pmKrJ{356M6;AUH42-N9j5{oDa0p!IkiNtrJ=bZD=Yq_wLR+LZ%50H2 z!FnMs^@2>=MVYiKK$0W<3P<_{j`R=AAYBl>5b`6~oG&0U9Yq3J5hnY`j~|$Vm?Fi3 zK=)6#byQ?NsL0}|%6?FT(NT5sDb}?f96*U8P7uKjBs7`9VN=8pWZ&XWDatR1PtMON z&CM$k0g8Y_NTEm!B*~eQU!DgEBq<eR l$<0qG%}KQ@QkndLJynmH5flJOBp)-Q21o#%C{hNR0RSZ#kmmpZ diff --git a/migrations/versions/__pycache__/be1f7bdd10e1_add_granular_permissions_to_.cpython-311.pyc b/migrations/versions/__pycache__/be1f7bdd10e1_add_granular_permissions_to_.cpython-311.pyc index 5a38f799f85d1666250886471810fc2eaca7b871..9d4da86a99515de07f509319722d1ab63212da38 100644 GIT binary patch delta 1321 zcmb7EO=uHA6rS1LG}-JXR%=ab)h@NBjnpXOANJ>>L3>b;+V&*U?k;I+vYX7N7BrzL zcu>eeS;5}yL93z{K@UO;dMNbZVOO>o76dPX2Zc&K6b123(v}9H>SNx=oA1qh`)2m- z-rx4CKKLjQ@FTE$Z@WioYn}&BV*J+Z#ZBgC9Bj{{tcNBmmP0cbp{L*#%VP!KKsh|k znv=M0A5xg={An};3!knnM|mcT%|lH6UPeLB*ck?L;1xTH@~pz;n5&qa%dyiQs@R6I zfweqBqu#Yx;i`C_`4R7^RXkNB4`c|}m>q1h;QdEgZ-!(szJC6^yne%Q zVh+3xe0dMRJrqYdbjhE`Ijo>YU@CTpDGGfkf?ZA#20lwWhIjoD3;yv@5C0LrJ3tg0*A=Y%z8L6p$4htc)q+rg8gN@%lQk zOdoAdvTBQ;un@YwxSG8@oX`|PYjy=Xg#yM>nqhunJ0~KX%gMT?xqL!1(yE-*iR)cm z;QEG#vhv7fJ#Em<5*VTH-u14QNm^mH9o#6w?G(@_AyDkR)m`i^oc>T7n&R#R?gk3I zrE;~?iTB~oci~Q}tKSX}IN<@P*$z$&I>EuhnNPgn@Vl)&$6s?6AG7(G!^f6TjVFy4 z8cIUrbjT9gVU)z}@5SbKV)H}h0slBU*D|~RRmW_HbzxvJo^ay29nU!Nj3p6UA`YNv zIHF;RMo9=wjaxz(Mzuu8#2hp0ed04YIpxSHOVVsfa{xu%5p_${mjd)Wl~Yyl8>*QA z>U;U18xxzyD=RCTFQ{Y<+MsV5P92Fgvh$5xY`1q_!hkZ+>t=rSEMKgJDcMRPL}3R7 zx;es@dx-3W*cB9_r&n7ig2`Us4Ejl|wgj)}<660QNgJ^H%){QFc$XRVb+^(cDU*c$ o)5sPIw2glFx>C9_mQ;JlL9^&nqavpFvjJN?_`nkS6UrLD0g~@eYXATM delta 811 zcmew-I$wxyIWI340}wn|Yn$oh_g;! z$1En0!h#~m1{4%$WSxABS#Gi(hXgK@*ibZ4ViG$kCIvHb_)X?yO=V**Vg~wZ@&s0E z!Ig}+IFb@ek~8A-3yK**qIoPHlDF7P3(|`cQ&Nj0fkGlcTx??`c7i4lS%H&)Dk{r2LIC3v=Cq%EtCtit9zZjo+B|h_lOx8u2tSdm0Bl`+R_63gY59}b3rlleG*GYU=S;<8l)MN|<;a3#ZMAjtsM@QcGHH$SB`C)KV7iL7Ve&@nVw%`W5a-LU`RG5=Epx{%%6WEV;k1s@MDj`j1;xnQ*FDQo}Ni} zk69BV`M@D7aRA9l9LY!=fHg7)jvNxnNiH0_QA=1YA+5B^!8b={C6>$XtM2)0gNe0} znw~dRuU@@+?{(FyujU`&aDamH@_EPjf1vg+(#RKAuCg`&mG3D`B`8c|mq@2v2^UT3 zZqc1U@QXxG%A4?7Jdfy3F$o6h-h>Y`2|sox0`LuD-wi4e!hWD(>>i}*1J@=wjH4Mj zJt~Min-P*~R_3E>I+|5@IS?4&Cj~`FOVPfb6VYU>c{FyoWu)cE;U>F>S58D@t(a?W zJ%;horq)2W%yTLq?EwNkO|jNPO|6GwEz#!VCt}A=G#_a=e)MSbv7>>&3URESHeKn= zIrs@=(uz7J^U7Buv=~8BGJH}sL#0!iq0*_6xyV>QexPpnt}W3dOe)ZPnJCmB0BbSN zrmj<}r_i9LsRtmpSdhI=Pt$ja#y843EiO#opg2lhTc*2ifX;SN$CQ_YluuDbr_zCvB4Y3d3^!-w?L z2hJr6F9PNzp{<1P+HN4jGnq7;hq?+hmey zN#&9%_~2EN<9v!Ux2&^c<-Z_K`bAzEQ^(`5ReVxb6uA+RuMf)PEttMBUS&rF3Cm;| znOjIxB?2r7jA8}}1EP{mNs1Z3aynyon-wFRnjB|2QRU?vD?nml%bG5QGrir`IMX|* z%7Qdj?=cY=Et&q@eof1!*P2Tq-q=(4Y_;i(LhOl>B9{}(m|XDW1JJ61uhIZ-eTMoi z7{1x|_l}z#Gd(ZLBXj6>cs4xKw;bO7JY4rIT&IUWHNv0HoLaVmdRKT}*Y>Qg?a3*< zuG^^VhREt=Jw{p2%;|qJ<+o00Of@_&e1V(cTY~P38osFJi~i;h8vb2#qYH7(AJhFY z!yj9vTpmn69$yaD-aV}a55Th=s(K#U^DMOIzU!V}+u!!nz>im+CbfzvU77KReU|aP6hHWxQdvb^nvT$>N&4LLsndRCpoW3e;2({|TK;oB7jzgJX33)pq znkk?Der>e7J8KTklJ3NEodRd92N}O?%60& z{+I~;g$OZy=iAUa#8sISB-Nxx&8iEskmBSiXGi&vBz%?Si=y>Nt|PPWBg9$;`=O?g z`HDc(UsycydFc3rNUXpH*$`^}5whF>J|4EwBclcP!DFGv=(A8%+Z)qEEk>wC3$+k< zc$h#pn-FYxm_Wl4Ua_}W%b~&bQvdc*9_GgRTYWE(_eS40_}i1SXKwe;_CH2XvKs2u zQLlk|?LP6&$@w!2Nv$@f*T#(6*wQE3z-0{$>uA_O!?w(qcVhD=76!GNX1%7_sA*o> zrd_pxQ2#wG-RNm;!Ia>Pt8s}_AH?{96n>zHWi&+?}&Kk-Tl`5KOCGt_?Tbf zHPo-8egpN}^IC!Wp?$vnadrvpcJ!5w!x}oPqq7D&3*!t_Gnbg_UpT&S;HQ&6_Gn$h zdixcl{fdSXI!YKQk(24UFW*xa&guKwjD2kyYS&S_f!eLk$Q*NjvpB1eZ#< zq4FZRZt@vk!U~&~tXrS8AMLzvWo~k!z4o=I(l{&fo$@d=$$_WL0$Fv_G`;Hb(rA?; zq>Q2?8nwOjS*C!KdzPvFn)6wvc5BXO)k}q{XMD@$yJy17jEZX>Vd?> z6LAi3(0DK&OhgYJj7c#~G#g1wj0bNuNU7#TDw$N@*p~9h)sN5u3?Ltm5d`=E;vs};kOVi8pT|6`BOelA6V;#RRmA*q za?O$-VF7b%;tJ1kDf;B(1b0iomN|X~k-j-$*_vNxZ}=$H!=mJZXOaRB`0I)$h2t?b z6jtH2qZ=*?Hq;D5!aPdA2cZSrVt2cZ2-H!tVG^GjRzo8b5lxOp)Zvlw7$z(b&CaIb z_{8*NECF}K<5xvZq^L1X8IL8VB4IU7*k|;8O&$rU;j!WPR6?Y_4OEDmfk@L+Q4+!t z5~Q!+KjyeS zwXm4ht+bThB(`E{OwVw8j~=a371&W4+e$xfbra=@UgtIe&`JE>#lcAevMOszS> zBob01Im#yu%=;j`a?KE})pANKd$Q>EEBQ1Ai1-hpj=;|vo{m#_xTDJ9j31H^M700_ diff --git a/migrations/versions/__pycache__/c243d6a1843d_add_last_name_to_user_model.cpython-311.pyc b/migrations/versions/__pycache__/c243d6a1843d_add_last_name_to_user_model.cpython-311.pyc index abcd774e8e07aeca0b68b38e91b0eacd6981eb09..717f0f2289af9d37d7a1244d777626fd9eae0f8e 100644 GIT binary patch delta 504 zcmdlXFi)6wIWI340}u$^u+2ERk@qYU_e#cFEP08!sVf;)PJYVN!uWY|7V{>?m6K&z z^!fRLDsQou7Ni#?rlc0BZH{KKW@MC@Y{IyUnW0E@@<&DqrWBUR(M+z4tdkcqS*jIr z0yPwIg9siVQOpD+6cma;#uNzvi7MHY{PMiXKFpH!svt2z5FrF2gh7M|h!6u3nrubP zAhr~UU;z=*AVLO6+~Q6t$}fmd&d({$%_~v_iWGwsC;$Q2o?DzCDk?_SiPK+?`y?;#9A#(O*bMax+=@VSgGb~#kHRG$g$2?Vd33Mv=w9H_ z{lLn^s`r5bMtlUZzQDN%32dw%KYm~nMu>?OgS>uFLdwye`Jg?E6EpiEHby7r$ujKf yjB=A**lktRfbvBkUqHeX98#db{Ka9Do1apelWJFFG5w#|^)$a|KFTa)n?OI~7b>PiO9$xoSD7>g%oF>hkjoGir5Mats z%TU9x0M3VrgXk3I$$4z9;Vgbd0zh7oAcznK5}M3K%pkTTkhsO2Qj}j1pPZjlnwzJ| zSfmIPD+bx9Py}`#XG(r~9>j&JKvA%CFObo|FnIxsXgwpV)`pB590J!lWG->Y%!t0o zp?QTv^8$zF2WFtu2L>4N5ybie=OQGqv3~scflU}8Rt$35bTKPtj$JHv><1Yc?It&I zs544WUd3Unq6CyH0=cya6cVH12GA(4ghwz BV1Llr_08SggT;z!us zlok?&Lk~SvqGgImMIu}%X;2~|#HHL3hhEq%D>YgvLOpQcmeL|cJu&00(}tj^;@8Z# z|NO6+e|G+v_3ouM-z~3~2ZVlD=|A&3f7SO}U2i0w*x%E$zbDz1?2V_>sjGh-<-Nqj zN&3SSew{hj43vPzP&b>-vQw*3dtZbLsF7?w{?r!?x;O9A0!Q|Y!{4*5%{3xeu3d1DG3hoX!L)PAS+2oZ6x>m# zwN~W-oUN>f52jsWaLRQKD0|6L0{8|B;-6iOOb}1I!$RmkG@**7VT&e>zjP=28;@A1SkmOv zaxSaMrK07N3RyWnrb&f~d{&bzhb)f97z-9B^ZD$1dC6jn*@E<^NEQ_P%#+5F=fs=2 zjblcnG`D)vAMPUX1sDfY;2nONnPNn+gGg+;>bNW%2QfyWHSisXIV?w4kL8rb^D5nL zEO4X8AM<^AS=Dl-!o-G*`tqe*Hm?p4rmBn+4|OMjPk8S+I z!$gZPE@@+OQIyV0s$~bNj4bAK%#H8E=zhynRSOknjBb~zy2`D1f$E#~x=UZbVgZ0WsyQimA> zW=xn_g)=lb4bgEuM#4xsOc*d>!i4Sn!ncl_!VT|D?`>9x{RZqeVgI%o6NbyIoddBm zVe{;$0i!02KB(hd?ni*Y8il_b0gp_srGECzqNZ~RgG-oPVhz-~h8eudzcPbB{my&- zj=TPjMQHfrraykkvr_rli{s=U8=;gLN?j7x+yF((@9RRGv=tP%hr)MJxD0RcU-SCD zVIz_;BN+pYm}o>tBP&8{`E6b3A#IE8kP#U+Bf|#Dm?)#qpv;O8E+5c^F4DFbA2cF^ zW@OMnLna#1(a>5eUAVn`8y{3sc~rq?<=gY?>+80`k?rkNT5!L3Gl@e!=N%t=$nUum zWC-Snc!S8@X1`Qj4t$tt`lb^(+Qom}It&m2smt0UN|0D9Aqso(E`Q@p2VpHvlgVM$ zvV{p{4;}N;IjN|PX%{9WrIFgw3O}JVQ{9A+9}YAd<^>vC2=w@4JgORkWQz5j^Ax4cDFP1 RS3ZL$7=dY916!dI?H_8`@(cg~ literal 6136 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 diff --git a/migrations/versions/__pycache__/dbcb5d2d3ed0_add_contact_model.cpython-311.pyc b/migrations/versions/__pycache__/dbcb5d2d3ed0_add_contact_model.cpython-311.pyc index 23ff8f40c9c4edf27f229aca0872310d03287cdd..9469b3ceb12a65793bb0424efc141d6b2be8f81c 100644 GIT binary patch literal 4680 zcmb_gU1%KF6}~e&yL)$cRzJ3E#g-*)5?S@8`twQ~+4`~3j}_dcCRnnA1!bAtJC??s zo!!igJj|E@i-AC)OmZDH;tUD4kn_)6YW){fBmng)KC8#-Q;DB4`p3hOjb| zWhYsNwtcd1l7lxV`?CH?Kk)pM0TP%D65k|-Cq#mG(PWrlpb_F5NAb|SJVZ!rB&X;? zMvrB4M3lqftKzJrNjW8Ud9*J^(wTIUBuKYNx?G8<0rwoqq;Hf8eOB%A%*qu95=M^{+X&qP|J*`Y4?kGsd+ih7V{Q%ncvSMmGpcOO@8RR3H4=Cn z^sel{7V#^$7~02T_|QH^_OZzCu^2sI9IN)RxHpamwOIYiE!KD}LOO8Et}o}H{?&S{ zIcbL4JEXNEuhiO6kG22zjMRCol}_c4S}9)$HX=u-7;D=nX_>|r%5^huA4h)|UA(*%J^nP>`Xt(FM$cH$GmB&Y z4%RFMj9`-)Z2Ag^?^Q2_=qq%;WrbZ1Kj4@7^%(;vO`NoF(v`IRk^MBZany(<%~;Zk zCI9X>@R*6mEIj5a{B%WKp4;#l%{^vwkJa3>2^KDy_>zS$xe7m7Ni3gVA2Axb%!V$j zp=&c~;2{$aS$L>YVc2NsG#fgthR)3v179@pMGIea72+#bmv5|RjK+l7n6MfXn-c~e zHu129hh2rYR?^GTx@I(Wn@!zTQ}-q@@Q8^=EId-4qW8gh@IyCnkBNIM+~Z2<`XYab zej4563_NJ!K?@K5kc3Wm>w&y1Z(K8Qzlr-T-0zN|!I*!ru)MGV9+V{(ZeBgP%CFC@ z|I)+*79Id?%HvFY+QO%uUc=HmCT_8C%Qww6q42i|$hJdTQS~JTj?Aj`w6*_9Yyak$ z**apijsVN78nvoM7vK3h6tO~$OE=dij8MW1C9F_l8*%;*n2qVJ$g!mlj7SUAExzt4 z-~5DcrdzuH)?d<}-TJfqnf%WQBX-q{UA2Jn;}$<|@Z(#N`lZ`Oq!p@nRNLR!&m(`0 zejYX6hhf*u*fk3%f8FA*8~pX{5S`SW+NIw(ZhY&|O8)n^U%Ytn{R*yBqsj1JuMb^( zuif`$JNMq%;FmoN&$G@&_# zumJ8pFOUJa`v?a=S&({c!M9rR6R0=}=HvE2qW=d*`1g$XP7qZh-wmN2|I62jz+S5W zwZSWgMKHAi7O6H;LgB7}T}~EM-vGvZBLU#t7k>unz&9yrq2x3rt&|+6VQOR7sK0u7(;Vo1^pSr NGmYD5FLA!v{{f-6->3ip delta 1897 zcmbW0Urbw79LMizf49ANg}b&ZyDKdM14c_3v>-x-f~`zNJB`7_gqRTER{jVr-j*#( zSgLUkYBbq$SXPpf@HDIQp^HB7y2OV)?BQN>jM`-S49^@!TQcvD6jPNQa1+S* z8Q$4(G|gAhJPw)8)*yxdOp1rdA8N+59U?o;wRV>dks*@@KQPxi)$yZg_tF2rp5gIr zlM8o1YYoCdi9ewYYv8OwI4eYr|97G)r+>Q_R~0SLTl6CyJHUl8FZUljN4Y%M?JK66 zh~sY2ZnUZhHhiD=Ntq{3j$5k35#;Xh?Bg7_&Q%AvjFgjCxOKEG;d;veZk8l;9KUI4 ze%Y+J*G(6YI=pV)wpZ3yMpau^O4D6sXNU6PUo9sF|4*#Sl{jb&$2Uo9V08J^4ZQ=_Shsx5x?~5Nv!h9k#J-e7xRA8px#j{x`!CWetEQyQB^lD-* zlTu68xzzI7N-|v%W@j>U3)899G{akHQ=93aWL;aGS7(%j8m2QB?dg(<<38Yi1Iv{+ zu1?&ipNWr^>#>bjuf;dwg#ishI)n&>4A1gbEI(10)Vv|xn+*|fXy=>;F&$zAVg~Wv zR$o3`cv15Nbx)9Zf;%)sREH>mr~%AhS2r#d%$nS-%iTooF0N@1(IG-0au6_SazK{@ zL=F@c4Tg0XCNOLOi(AgTyU>=^+&#Lxhq!xoTpEn(FiK$5AeOdH=lz9#t+7{c>?Mu8 zJM9{b=`coMtg^?&YnNyu&uS3VAxI!-c-RSF+dQ8?UmVvUtV5VU_-IeI;$r)CZFc9o ziwznK>M%%P&{)KN$Mc&b`H><`q2eLn$xY?rg>WID!w`WXN;BKI4y^=Q%QHD=)uDwz z%fn_nZ+XN~*=6$h3|A+8Hv9=bV}AvITKB*qM91PT^F0^DPg(DIQ2Z4BuwFL(!r=gF zd`UqH_qFLJz2sZ88*PBQOrOp6lli`#eHC-{b3$bjPf49PX>GuFr4D4qImw%y_io`WP3+UfY#$N(b~zL8FE0Ef*nbqf-wWQ{JG#(Cgf30! zs@SGK9T%PzYdG`$;vsARq)LDXrz z(}1E*9B_1^PCV&|w6lk%va_gOCap}^Q~X01SxG5t%ZX9-9RAjk=xsu8qh0QRjw1_d L+U1^>a*)3P(Px(4 diff --git a/migrations/versions/__pycache__/f18735338888_add_company_logo_field.cpython-311.pyc b/migrations/versions/__pycache__/f18735338888_add_company_logo_field.cpython-311.pyc index 9685bd7754a1975af6d89495e28460afaafca84e..423ed5c95f9961334275eaa925ff4d61a4c2d162 100644 GIT binary patch delta 1098 zcmZ`&Ur19?7(eIUJGZ&rX=P+8IYlQ!T!Iwg+y+C4LL1aWAlRJuUgqTP-f_;gs5UmD zhk`vMH^|2YWl8qXn-3MG1iciS43rB(FFo{>VGrUaFgpL^qSLq>-BAZ*Jn6804}nUVpTrKSUr28)nb$*f2Qits*2!vb4l z>c1j$c=sqc;+qlKG;xHvK)kIw68l5a#- zg_w+kM5!5D$r0Q^AP0)B@yb}h5AdV&`MdkX4!zyraYB=#SkknF632#gDy$1b4dm3lgv=o%Nd-YDvDuG zC^#hvnu-i-b%SA>j%mV7R83)e*i8h{4j9&IN~oKxTFAt9Qpp_n?%?zOhk<+`H@ek) zYJr>QAM?3On`UN(#D>Se?(wfgN}jQ@XN;s*a*b!puJPQ(Z`P9w*NfI3GPd}pGT&7= zyV6tSLnS^`=0n>6+GFs;g-vJ6hO=|s+4-D#W`F5>*ZtP}d8jxXDGf);!;#{|jiNhR za!1Pqol|A!RM9!L&C;V42NnEfI{R%RVdNv``mOc)?(S~=^1nI@Y`r84e4G^JV@ELD z$FBBq;eP9?4~F~ouk7o~&BTJJ866|wWz9Ar`oau{h}2ZIJ6?#o2#4tltybMGs<#yL zDWP7%cIj)}7uc@PTLL|_4q(8SBPoR^o20SF$fwautw-pHrG$aIfkvH_#i;{Bxl6u7ZigGp8SQ$N#quL zX+e5XVoGX}I8aCgh>Q16?qHLtk7e9Zaf3tPI*0Tn4(Yj0b37O1ZB5#ed7$`$nfFCA z?<;2B7s8@0$V6Y1iM|3PIbyDG#9ZKr`M}J`8q4^B0YQEQv%esTAj{%n+x+AYW#3Guv54!O4N_wu+!2Dgp_vWcUmu8NeET naoFVMr