From dff51be18f193f570a1c8547eeacef2476b64943 Mon Sep 17 00:00:00 2001 From: Yapollon Date: Tue, 16 Jan 2024 10:58:25 +0100 Subject: [PATCH] Completed the Habit Model and added units + user_id foreign key. Also we have some good test data. --- ER.png | Bin 0 -> 38209 bytes UML.png | Bin 0 -> 20429 bytes db/SQLiteClient.py | 26 +++++++++--------- .../1705398235_delete_habits_table.sql | 1 + db/migrations/1705398327_habits_table.sql | 12 ++++++++ models/Habit.py | 18 ++++++++---- 6 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 ER.png create mode 100644 UML.png create mode 100644 db/migrations/1705398235_delete_habits_table.sql create mode 100644 db/migrations/1705398327_habits_table.sql diff --git a/ER.png b/ER.png new file mode 100644 index 0000000000000000000000000000000000000000..eb83e0a399be1300e6485e8863a811e32bbf562a GIT binary patch literal 38209 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 literal 0 HcmV?d00001 diff --git a/UML.png b/UML.png new file mode 100644 index 0000000000000000000000000000000000000000..7e31f69c89d3c80ab0bc21764279252b17e42866 GIT binary patch literal 20429 zcmafbdpwix|NnHNa_FE4kr1JEQcgn=l5(h!!$=a!`Fz|cQG`h3G$EA3>U+cpmoL$Uv88kI)_n1j3_t^~y~M zWXCNCgyRU;Ht?4p^~^`$zg_qAb+16SSpVME=f8qLjzRRUT)yp}P94If`{%Z5AzmrIe-FQ)0iz|A%B>R-U)#WCc1UP!Jk6$%T0V5 z8>`5z)tX1(ch1mwKJeE*+$IHwpf66akGH+Cl@kKF`^1JhV}@J%db$(77Xta&Ew=e5 zQVhAVUqTGLg9pK+*dW)JrrGZ}s-~{4uBJ9R?8;t*JLAkEI5>D2DKeffG>IILWN)4% z<@W9rikwks%6jJG_7}md{~^CtY{$2=f2!h>5DN`4pYI@h4OpAJu2YN3Znku6v*Oo| z+35pbksmoR=uQJi{&_UUC48T)V4n}1=p)jy^gUR8emPK+YhVsLcdyhj(|~>6(&&re zyis;7c^4P+@xDp+CMK20Nl1QJJYVBn1A=)C$-Qg)x}AbhjE;o(m!_sC`yO*@zG}O| zWz4UQB5$l@%j|l>!4qR(?gBnLl#dH6Zu`_KW6|fd=9T_?o{?FZ_IzRE^#n7MUi23S^MMd&0(yoq9kCQ-8}x9tNnhkahz$b zN4V_i-aId{ZKk8LcgMGXOkUafaoW56mYR7|@BD>b`m7WGBAq9X58uZ`WV(IR@|VI; zu$mU-$Mh2PE;=gv%=nW+fA=78o?T@wU=8A5?v=iMwd2$yDE>Rf zE>wOGWjuz-!5;eA(sadiTv`ABYoc_J7`=-FwuQVY9kokh|zsk z5`QDfb;NHZL>Jlh@&v()CgdC_=_eS`u1i>Oem!6EGlbXwPy7>|E zE&iP&0#NQINxj4xdIMo~@e?ihm&LJ85dM%~GsUKbE6qB0KFl*BF5U9teyF+?^9c<} z-sPnZo(5a+KT*C)>~+190RkX-vI@s^5sdh|>A1ep*{^J*GAQYMs6sCA0*R>XulE+H zRU@d{i3Lll-S|*P#gAvA(7h$WgI1B-7*sD&CK`8Q~WkJF3C1d^zd$OrV z3px41J2b^Qc<&rXnCjz=AD(hOZW{9wLf)HxdKuMLWWN_#E94R&$1gnb@5&Hzp#Lsw#^=$MtyBy_y}6mTfdEIcMsxe=mADh)9;8z2+w-BI-Dk+UL^`~c7F=WH8XR5cSyUX99!CyPIHG-C zKXyz(_QddKAMAMF{u>;|lO`rN@_V*F;Dtbl`bRFv4(nDe3hn7*7FC(tE)btN1o8{@Bm(W zulUEGLXclt9}1$-Me)tK6&M)d$+2G_zc2U?-bt(9T31|9mt9_7_Sxd*fVlQr7Y?bP zu&(;ExcFGOmID$jqI#ui8>DffvDM*Gu$e1tiys2v4j!?ACi5Sa4S&<|AZCZ9+E-Uj z-KfBwkm{Qmzgd~A@e;VY;a7XSl|&9}i-RlaTzY5rFrwV$c0t#b`fZTl`+}?t;+(&q zM{a4qD#isrmabDa=b^58C091bnggPKuE>`iu;@5Vm!h5;+V95Y>S=HMxwnrzjkV#hsY{}Stft9CF}Cjd4^N! z&GqDD0a2%}K?9K%-G_u=bsP?t@5%Xu!{uGRYc1LmH(DEiLNCF-zp1GSkJmR(a!UQ~ zHIle25~JfGQbMGZ$%9=l5*ew8BHuXi3XAShfJ2i#M8w>hLGb|(%(CmamX}15{W60Y z8Oezf{ZR0*^v<7fy%M6O{Nbg;|7%NkK2#F9xxO4&?{Lbg`n%MGqk;uA`SzT*%8i~1 zeC=-~gM=>#I|EqCbs3(xBL9z);U8Us&ZT&t1ULVe>@l!YT$^g+`8r~L_+;3di?qPh z?vXGs+wb-w-zm$EyzkJIV_dQQ;U`kl{@Kd@?b#e)ceTCATN`r4lj)u{gQdQ1*cQ4!N>`5Jc%t1SUFYi;%j!;)NkTXOK6`7E zUT+n(yOW^GjB*>lZGUg3l~{DHAc?(!Awo3e#dN;CO)n4BqJ<;G4H@CKZ|qa{9gnr! z^CGK?R=A}2wRtM)qM4q#o>YM_@ztIQoysc3JsoA=jKo}TC)uY9`z2DaiOS1b$phOU zp$9@tu5nrgHN-Hxy4zy(#wui6}w1_i9tsx8~(jkkGW- zCWlTr90TcJ^O-z;>cvUju!e?)MazgLTVsArE~1a}rQ1iO^o=V;^z_HiTdbCkIw~x} z;vP<6U02@|=L!b~s4lwoo*EE{)ngj0ZRy0qdN>HuqR3s4YBj9mohD06RN#;TnsQ0-LCqyb$bh;~%;RHk;|&EP zF7N9qpLf*f*M9QpZt0z_n^g#0roDNBq&FEN9!|l=j?D&Npwj6n55M1`f>QK;8~=MP z;Q+25cRow=#Z2X5(L7XmF=#XoX^&#(p3l$jfqd+?!F8{s7=l(tsYoX3aI|)UWN=Ta z7bspf4Z(UniLO47q3-cRNyzPuQvSig!GVFFAF^5zB|(sR8o&PQmxi8`kjC6k>7Xou z$6y0hN8Ok|WnQ_*|0NCcjsCZFpVg@!IK|E>D~ndNqYq}V!(QX%y+@s4gr-Cl_B*}1 zeLAHHUVH91e`~vK^0oBE(iFseRhmzRmaogx#Z;Tvom)^KkC%=59M}UDV!tKS=P1bG zHmn{$hT1fG=EkkS$7C9f*12pnsUZ~eTgkeFXm8%<(?Rgd$#=x_VJ~WE3bWs-UhO9# zma1PWUpO+a0fRZG8?@12T-yR4l<&I-6IDFW_3=JI*5JfJ*?VUMXHyP=_c-r0u72CB(&W zLsg5{nImt1sCBl`U{Rx`E{wUkP7e`!uY`8n%^n$AK|x;6G{<>P$j{8cN>-S7D`XM^ zCerq0kIeV1fJV)tI9n!rr!$(;PHB>UwYxYYC-lg`8_C^6%Apw5Scwu}Qag=yzV}_} zzzuUKUzm{o+IZIf`rE|Hn)<&R&voC9+FlXJudAEuF%hAlZLStku(+BK?&{;N1J;gD zJ`IXhG4ET|)Vj~qj~u@az}Qo>EqgT}X}o4kOzdnDg;dMjq3!|;1+Kc=-6w+#AR3?(b(@JL@zRxBl_4_TZ1m25?E=m(DOEA z#IPq3bslu=pC!WR!3ZSMkOV5YL+&6d&q*)>CZ}0-HaC*bAEhW7cQPb34|erxf+W5S zl;Z-E)I0@2VctlqOfs3A!O%803=FK=2z5btSE1D#=7~N>TT0XEjtWs@{`J`8mR>xlVV$0KFgp z=;Taz>XGt$PHJe~sL4Qio(lg1i)+5Plt?Kk5NR3JbRmI8B0nvBpNELF-aQ;UgBWOt z#t9eaj$TVfboY)F8H;)SZo9APn=1Q*7tT0eTFu3{Zb-_7im{8Rm7 zoOp7rOLV>Xec+0yzB-HI87vfZ@Y_%l-(AS!JU2p>V!b||n7d|%gh1AQC3b&|km&+P z8Z1y3@GLn731zx?xK;H#H`7kxC%&&T3ks}=RDgRtgAtPPQqn81xD!vES@XzP{0mpc z-7}!)yu6Ql*AsA-J;xLTzC1NG(e}EG68;D-OLe8jTk?1%u>wh#+YN5^?VayJ3Uq{sDX|GRe~Nkt>NVHXt|2=v4j za>p6&=`Z^uveI8{$&oMR+bM6&IVjqPIPT5-F%>?X3#MA)ZyFiQ)NYB}#Ya|2(Sw2Y z){IZza=Ndg&XRE_?Gq$pmax={u2@{{L~??pQ+~;XQ5Dc(zjl`FsV}@?X1L(n^Eh_d z*wxM3LV|}V7X6U}0=;HpQt>Se27_^lm&u<$z1PeWp4`VDZtF-|0TcEF4rIINr|Aiu zSJ=5uw%cb&XUS=`JS|KlWPN=di;MtcZXN|*9GyM29C&9oXj@(9=)}ZCcHh(OkYIN( zLb#?OgC0M%(Ov>o7lj?}O>IDuywu&@2TAQmq(Mfx!_W4)z%BtpW4AyuU5b@scv)*R$~zK`QL2=u9JRuH@L4> zv8-O?Yt;xMXf6t55NhMUUhm@z4gI+?ILJz0jRT_cVFXN$v33Cx_7hgM~r`Ib-j;eU=q>T`{#t6P8L&_y}(($|3PPMO7 z)@@0IF_Wb&*T=_* zan0aG!DU_Npu+}!zK&w`!UT0opXFjiI|Q=QD|pB!lNMhR@xZ*9G!c+iCO@(D0CX{L zxu07Z)t;-INiC#cH+1NM(hlFxW-7%h7oOpsFss7KK4{fNOT*8e!r$aFP68=>i4%8! zO3}X7o9Xr*m$g;98b`qnf~ic=n(@zRo&V8O#|&h2_`vBo(!?A68d%?xRaJavp!%D^ z7bf>5GCxwu3l{4($v9q~(Fa<9a$q?k%Ie*W~rqBc&@&on(?5 z&ZLhF;BaIzK6l?eC6P^X8XF>`<83yV@->+6j7@rxGfW0pzQ(Eo#pq*Wr z*g#p0)81ik!-hRydh%$OuS9xS4jD=*EY^r9ES^o5;*k&=GS3@EjF-QbTTkSGhzQ37 zH^k!_Tu5k&1#7&dP$-THH&GCwDzQ7orWFemVoB4ed!4(Lrii5eKL*p8?k;t zY->Tx=QOiPW20$gqhq9^YKw?u62V>B>KZvpND%lPpTqP-&g4ANJ>efC#S5i<=x@6O@VR@8Kbt$cXc_nS%y^CoJSq)aukP*eD zIB>(LV2rz%w)65CLGC2H)YG5+n0o7yny!L^K1$_ic}){}VH;!XqfXBL`D7Qyt=V;E z4YEc!8XEPOw=QDNriO&N*1%k`oOs7k?8`_-(vxu&f~K`h0P?Dq_)>l^FPnfH6o4C< zUpstsDF1Dc*~msdH{`Bg%&RERh*Y9ztDKDg1&m`yKAuEB72`?TD=k!b(%a;<8Kdj_ z{eX!2AsKu1xm9T@g&V4!Pd}RqF_AA5t4^`N$V-pp4Q~zJD}AY} zPCh5XiwmYFL@aN7XH!ipmw*bp}R(@uNn=OpO%8k-6Vc@%eOV}d+rulkK8f?R98lh%@$P^HHYD5BDdHBg^0s2&0uWG)frmgfqStuo7Al2x74xI^^4FW6tWh7*vYnaDsG|(*?YgAP6>@X!Kl^*ok zmn_sIl}K_!Q*J(|Vox$ynRI1^quJhLqNZRH@vOK_lf*kIWMp1k!wM&h`ArLd(?hk^q2`#LV|t8h^RYvvNEes z`8Z^*7wN)V45f&-k_}hOT|yF8Fr>{&ae zRPngeBb^>Rr_|Y&>fXy7(Uv$?J2boR(bh7>kVD!NP|JOtpJ?%mQ z@RyaNi3w$S!2KKJKSN!0)TV$YzxL&NZ0V-T>gwv?1}K59vs=aL0uU9z?y&|&22=479G$ikH;n zvapu7SkTO_oY6_)dnMPD;$YrfW2}`pv3U5}^>Xsy9<3UxL5@QEx*RB&iWBIw6@>^( zvrC^2EL!KRS0rDkBH2%I4sG7->-oqWV8rmAN9@HFP{iQ1-X#5#zG!1?dPDasD&nQt zi191ZJoe9~qWt$q#F0>v6w;rEYJwQ{p*}rW{jJyadd)XW^#Z!120NfXHs#;+JA5Lh z_g=n}TZ`|70!a&-(4%Hs+ZuUpeW6=P@ZJb(KHcj3OG(COT5)0?qV#N~_272y_oor# zG!FQ3|6#Df-#(+&=rqjZ?#G*NHQ0V`5t};cJ_WdEC|}!;1)z=9R~Pg&YJVpo0wKsHv0A|E~9Z6d+l zR3@*R)9t8GKv_?0Le0HL;U{i#ofV3iGA9bIu&QF?ss7*SzNPWY1llC6#@<{(p`ait z^Qxfs{@iz#HxFxn^2>JS69+io-7~+oCIbvk3QIthw|q}fNmjD7tUbEMS57Y&wOA4U zPB(Cmm!wCYA=xqsg+JyDS?tw^Q!W1Q9_-uU`J5W)nT6d{_yM#opgz}OV}oG?Kvep` z^PR9(P$&CDR?i0n0$4N!D;n3bWS8u!H;r{=<}qi-vt`C(SXkAK!q4~Fuyy-5ogQGP z_L}}eCr2rkNbxaG@`0}`nz&qPXtgCqv zm1_CA5J+M`*Sbt%v0S&krwB^1uOv%HW^Zxig6k&2OUId*w88+S@EBVL4*%fVuj8G zj7y70u%Dl9GFQ1gppsor``*<{C?Y=6+HAk7PoQzze8f(fYn}9g`)wSlHyO{bL7CY` zo=88TgkeBc6Sb)8I3OZ9+-yY1mH{)5YRIbR{QP{)fDI1eBNDj@U^gh|04BuGuZ7gX4A=(vbR>!0 z?r*Vy>B$hkmG$iqt3((ZJrbQY;vJd&^W4ifR`ZB( z{7qaki(HI}K~wgKTM=W%?jSC3YqbMd4h-4X{Z)5{D|q6|UThT>9vE_Xfia5kykk(i z*dDAjD~&&gKBRcr%up6^EI>IF>%mmSBzR^X+)wD{#?zdXNZ!e z7IG$*6B0T%l_tq*yx--enR|UX38)9*h1|u$4IZ%wab!>}8cfdAo|r|FrQfyV?d3OB z#po{%M%YRi4)qsjfXO-CL@;8pa550%)i=>Ir)Yt+PLf*oHBa(PZg&s~Y#UUlF^)Ny ziQetqo>PlCVDCDaw=gd@FfVM_gN5fkDnY|NZ9EL;x}YjGUa3%K9zODXyvDW&t?Y(L zCYQr1okpHKlamvR%kLQ{gXobuuQ!`yp`g$iWu8NGvq?lipvl$K{bbuM%aAA zmOpHPK3u91*RtP+sI94Q_dT+LH>I8v!4B!FQ?pLS<#9(QbxzFdR_{<)>|aOsCE3^4 z)y>jg8vO=?MZ(PYu6AgXEYOv$Im!rO5L;R;!Fd1=^mh1xML#*FWNuP2gkkE0<;94p z2#;thN}OV$#PnSn$%MgSiVM+I-6F_V%<@I>n(NodJzLptHlN)0amTpW1cm19dyIM; zIA;L>R3j6U8npgGb^ywYUkb2(-t;)@8P8&BL5{=8*lc_c?>A7C_`~#{fcQo z*9mF-T08#dHsZDlR|g6k1;vir%`Tz+G!Xay!^Z$EWT4XA&dzRK;~&)?QKQCRt|Nq2 zrGAk82S8IXWc^_4p}TY|U()b-(%k#On6|Z=?%!1P^VO?BPzh;ldv8`d5wHnxVe)Zp z0!^he>V#gIb;;^U%GH6aY*qzvSxZS{)lJ=~4N{i+kk5!s#JV${mHQT9Bjj$q+c69N z*M|U&?CXf%ZKMWhfFYNS+W7{+pd^dLvJ?;Q`WQsQ2XcUSO)A2r=K`a-7qA=u(5w@v z1u($u503T@tPNK6rBw#ohfKjMGEV3zy#m>)9)|cC0JUe$V^8*eh+AyqhG`wp-v9d1 zPaD{c?kVtM86NV;&s*(dx?E=gEu#2Yk%+XUuI%YRoUK?5WdVz{3PuNjqCoxwr@Jdg z)mjmC+en{p4}jokg^SF^=_5NAEwLkZBp-MKN##&hQClS7uB+>q)hJM)muTDj) zWW|JLo&iPI5(>6EgoK)X%vTCo*Oa^s$8_V~t#7yaCrA{Qry&R@i= zwm-S`ynyH$jjoRv>+7;U+O+VtNZO%uIbQ6-F*o9Je%2m^87z$W6h)@Fc1Du# ztTQ*8nzq|)=ARU>h`Uc(xqohSDf;VU={qXj`i9+kAmrk6E?! z%=q2+0HR!SA34Jf#9%laxr#ed>l$t=s#eFJ&`;3{vKT(cuBQ_k83sKH)C7u&n}!!a#XQ|izsf0!t5r(Bci?=wAl(H-hne?hnQbZ9W1yx z1X(od9$xFOfEv)HdaGQB6r~zvT9+t-vY#7pr}Bw@A)k4%sSiBa{>YB74F=y(hs7aj*?XpJ;rj9Nu6VcO9y#qua5=q(J zFY}uVDRvALjFHt4mgb9FtBKDTZa==Gg@kjDQTa;ml5&WxkIy+L(sGtNZ(=PyCYN=& zGFfVt@$DITA(OO#}FT(~Q%m0PcaoVDvldAd#SBAmu)qH)Tu+I-ZN##JE@@Ht(`WBpA^f)Zs>{^Hvq z^z-(uCMI*gV>oiDX&*!{xSI)Zow^&iVmnUMdcs5?_nJwbv~w`>)XdniPq(@9_m)drCh(5 zw=Iu4^DsX!1~~?IeWA}1_8lQ@iXKj#x&^QB36KJN=N$H55? zZOqOYZ5EmFntfX)+M|W(Q{c0mBC~zqwu1DjPNAc|O z>{maRZOK@l$9OZMQ@=6gbZfQ&(*M@rXyXg%BY-o{J-^ z6R-6f6I=L-X9vi(K%MI@Ir;u`TAUDd&J%l2L8ub>r&~FBK0^z1r}QdU0XJ?L9})5w z!+WsH#}tBhfJ!>`1WsH&nOQGm^GEgj*kwM~N(;EYiJ@M=#!pO0Se(evVYQScmek#G zKqK&$fQe(Q(2&OaCo&Yn1>yGAS1jp6*ZgXnaYZ!>GJyGX_e@&H<70x{yYLeU^8y8= zualubMhIkL166x|YPg%ViEtI~*4H0mx@CZ-==wU#bm*}QGMqQ6@!Cz zr+Lr3(@5;juRKxEwNKl;@UcqbL~70vpKjc3*PxK2B@x+g1!~0Gk8|UWbBDE1^Wb+O z#Rqh~dW#)J;J@B`s;(j>{43S3{6c5dw_kG9db{Szx|PMgLC-edRzTFwYc8u`WxExW6`iWLm)Q=kB=J5ta@sU@ji3yM# zqpnUb2S$I*j(@8!!Luw5^v4OW_uT{H2-8KYS4Y%j3+?U!Y0dVBx=q%#%p7-B72mg> zq^wlmGUz~0%?!P}edo#?x-YoA6-KbJv5E6=TeB_!Md8MC=fPEsOD#G&O%e!PwUvj> zzc&KB*x*^aOV(Dv1Du%UE;Y3w^8KKJD-AK7 z@XV3P4(6tQUrvLj61x-@4kyjB*-`)Aox6ln2VE`ff|9i~`xW4qDzhlw@E`9DlMx4{ zM_xw`#F17Au8~+*oE(E1$}#Q^Sq?H!`syL?b`t;H2hNh?@iR4dTM;|TUf5(q1eNRe zJ^uYzhC4#S;q#eyIQl6ObxHCqqK{xiof>zOj>(5@8#eGB@8$RrDTl&uk#d>#M~F$P zK;$8d1?SQ^m8QX-r8bwQU+sG=p{>V|KN2CH`NA>4Yi#y#ge^VdJ1q!b=Dbmr;lNZ+ zy$v->=5tCP`VF*|{29-9COoy)f; 9W9J#*~r_lRYiH^RL?DD!oWQ6*e<2<&Uih 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