From e99528e7254ee8baafa840da19b14ed10dbf1668 Mon Sep 17 00:00:00 2001
From: nathan <nathan9.baker@live.uwe.ac.uk>
Date: Sun, 10 Nov 2024 03:53:58 +0000
Subject: [PATCH] idk what im doing, im tired

---
 GUI.py                                     |  11 ++++---
 main.py                                    |  36 ++++++++++++++++-----
 src/__init__.py                            |  11 ++++++-
 src/__pycache__/__init__.cpython-313.pyc   | Bin 394 -> 464 bytes
 src/__pycache__/bookingObj.cpython-313.pyc | Bin 0 -> 814 bytes
 src/__pycache__/cinemaObj.cpython-313.pyc  | Bin 929 -> 2191 bytes
 src/__pycache__/constants.cpython-313.pyc  | Bin 0 -> 527 bytes
 src/__pycache__/filmObj.cpython-313.pyc    | Bin 0 -> 1424 bytes
 src/__pycache__/screenObj.cpython-313.pyc  | Bin 0 -> 3937 bytes
 src/__pycache__/staffUser.cpython-313.pyc  | Bin 2050 -> 1978 bytes
 src/cinemaObj.py                           |  17 ++++++++--
 src/constants.py                           |   4 +++
 src/filmObj.py                             |   9 ++----
 src/staffUser.py                           |  10 +++---
 14 files changed, 71 insertions(+), 27 deletions(-)
 create mode 100644 src/__pycache__/bookingObj.cpython-313.pyc
 create mode 100644 src/__pycache__/constants.cpython-313.pyc
 create mode 100644 src/__pycache__/filmObj.cpython-313.pyc
 create mode 100644 src/__pycache__/screenObj.cpython-313.pyc

diff --git a/GUI.py b/GUI.py
index 8707a97..f69e760 100644
--- a/GUI.py
+++ b/GUI.py
@@ -1,5 +1,5 @@
 from tkinter import Tk, Frame, Label, Entry, Button, messagebox
-from main import *
+from .main import *
 
 # Initialize main window
 window = Tk()
@@ -59,10 +59,11 @@ def gui_login():
     else: # remove else and message box when login function is finished.
         messagebox.showinfo("Login", "Login successful!")
     # function call "loginAttempt()" from main.py
-    user = loginAttempt(username=username, password=password)
-    if user == None:
-        # escape function
-        pass
+    user = None
+    while user == None:
+        user = loginAttempt(username=username, password=password)
+        if user != None:
+            break
 
 # Make rows and columns in the main window expand to center the form frame
 window.grid_rowconfigure(0, weight=1)
diff --git a/main.py b/main.py
index 274f789..a505e98 100644
--- a/main.py
+++ b/main.py
@@ -33,8 +33,10 @@ def loginAttempt(username, password):
 
     Returns:
         staffUser: _description_
+        or
+        None
     """
-    pass
+    return True # testing passthrough
 
 
 def logout():
@@ -46,7 +48,7 @@ def load_cinema():
 def save():
     pass
 
-def main() -> None:
+def cli_main() -> None:
     print("\n\nSTARTING CINEMA MANAGEMENT SYSTEM.\n\n\n\n")
     user = None
     while user == None:
@@ -60,14 +62,32 @@ def main() -> None:
     print("successful login, loading menue...")
     # load user
     # load cinema/s that user is linked to
+    #cinema = Cinema()
     # display options
-    # listings:
-    # get from cinema the listings and display film data.
-    # create booking:
-    # create booking obj and display attributes for selection
-    # save booking to cinema and db
+    selection = input("Menue options:\n\
+        1. Veiw Listings \n\
+        2. Create booking \n\
+        3. Logout \n\
+        please return a number to select: ")
+    # switch case:
+    if selection == "1":
+        print("1")
+        # get from cinema the listings and display film data in dict/jason
+        # user.veiwFilmListings()
+        # format and display data
+        pass
+    elif selection == "2":
+        print("2")
+        # create booking obj and display attributes for selection
+        # save booking to cinema and db
+        # user.createBooking()
+        pass
+    elif selection == "3":
+        print("3")
+        #user.logout()
+        pass
     
 
 # following code will only execute if run directly from this file.
 if __name__ == "__main__":
-    main()
\ No newline at end of file
+    cli_main()
\ No newline at end of file
diff --git a/src/__init__.py b/src/__init__.py
index 656f668..d3718c6 100644
--- a/src/__init__.py
+++ b/src/__init__.py
@@ -8,4 +8,13 @@ from .screenObj import *
 from .constants import *
 from .dbfunc import *
 
-__all__ = ["adminUser", "cinemaObj", "managerUser", "reciptObj", "reportObj", "staffUser", "dbfunc"]
\ No newline at end of file
+__all__ = ["adminUser",
+           "bookingObj",
+           "cinemaObj",
+           "constants",
+           "dbfunc",
+           "filmObj",
+           "managerUser",
+           "reportObj",
+           "screenObj",
+           "staffUser"]
\ No newline at end of file
diff --git a/src/__pycache__/__init__.cpython-313.pyc b/src/__pycache__/__init__.cpython-313.pyc
index 3ea433e7fed7f8e87d0f5c17f7005fb7d301f861..207ef96e3ae13f5e289cfcdd96a74b5c911dddb4 100644
GIT binary patch
delta 286
zcmeBTzQD};nU|M~fq{Wx(m%cQM-zD^8Pg`Jd)Egu1T%WGn=>gefLR<MmOeu;Qy^mz
zXF9Vc%S%QE1_n*WTZ~$oT(>wAQ*tx&LW@(2ZgC~$=Vxc;rTZsk-QrBn%uCHpgfR2-
zic1pnN{Vl>r6i@5<|W@^Ps_~71<7&eCgvrkrxt<ra~7o*<QJ8=fh0JKlZ#SQ^B~NU
z#I!V!3O`M*B3=dth9VXa!3H8g&M#sGvA9754~Sp~5gZeLCRhqFFff1|TddB&!0>^Y
ik&*EZg9Hpo-C>Y~u_f*>h<;+><d$e;FA`v2U;qHE2~R-)

delta 200
zcmcb>+{MiMnU|M~fq{Xc>Yz@#^h91s#-NGn-u3zn!AyaSMeOO!nk+9F85kHe8E-La
zX|mtqOianm%nL0}ExN^-oSB!Jo9LgEb&ESUF)uMawFn|!l$xAbPy!O?EJ`iNFM=?O
zOA^!4zzWz>lF~}^lKnI}iZ~e<7>Zax1S^PO0}<>D3>*wa93UpwWOK#@E`A0E29O(y
c<tHy>6cd!V!ys{oLG%$<N+Wv_F9QPu0LJt+;s5{u

diff --git a/src/__pycache__/bookingObj.cpython-313.pyc b/src/__pycache__/bookingObj.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..5d3e0d5b6ecf8e13b2712c57e515868e28d0c7d3
GIT binary patch
literal 814
zcmey&%ge>Uz`!7QLMOeCk%8echy%l{P{wCB1_p+y3=#}V48aUi48e>s45rKwxgy3G
zreG$k2nL2k0S1N`MkNMQhy+6sa}0|TLkzPiBSb)fA)Ps$S(7Ch!iA7fIfl<FU>jl>
ziWq|#ikN~Ki<pC%idce~r5K7>gIS~)ir9i#i`diIG}&*lJLTtRXXd591Zl1^i7zhA
z%}p$-jOXHVEJ`o7;!;phP{>cpN=+_N(1<UoEJ%&lv{HyqNi9w;$}A|!%+HJGN(O0#
zxPXBH#0L51GYi-a=?p6w{Z=xpWW2>voSKtX43bv3<&<m{6Iz^FR2<`%UlN&LnIGel
zpIn-onpaXB;~4A`lbBMLn3tTIqFbDwR#Ki=lp0f9lpK=;ajAb&mR>>SE%x~M;*z5H
z_*?u?ALu~^I2afhK7#_gf#CrM&u5Us@Vl^xje&uoh#f?L^g`TN1d7O8yeXN*1v!b8
zZuv#Ii6ys0VOF6C^MG{nf(Skk0W!!>lj9age0*MFZfbn|Ew1?Z-29Z%91xo)KEALt
zF$XHcA0MBVSyWt-lbM&AmmePw@>NQHa(sLdH^?Xf1_p*(q9A`ImSiT!Czg~HWhRxD
zq!!1=L);6t5aiM#P?&=WPzV<bGB7Z-F??iVVdeP5!^Fz_m4k_uw+O5nq!8q`+{Dbh
z_;^1})>~|l_yy}O5&~JtQj%I+a*MT~C^N4F&7xZzHW0tq70EC_qPtj+fq~%zGb1D8
w7badt-j1{{47`lIAJiCFcsi;sGfO_?7V5TaaJk9C*`d<v{ehi<MGEW`0GM&W)Bpeg

literal 0
HcmV?d00001

diff --git a/src/__pycache__/cinemaObj.cpython-313.pyc b/src/__pycache__/cinemaObj.cpython-313.pyc
index fff11a23e1313031d7094d7791eb0554d8ac907c..c8434df10ff4bc19e6d6aa88b61c8b8fa69c6dac 100644
GIT binary patch
literal 2191
zcmey&%ge>Uz`!u)hhBOwD+9x05C?`?p^VQl3=9lY8G;#t8NC_27>gJcKx`&&CUYhQ
z1_=fwhG1qXhG3Q$W>aQ}jv|&A)?ikv2nL2k0S1N`79|E#hy+6sTMWArLkycKBSb)f
zA)PIqO_Tj4h`*BY7F%#~QEF<QCgUwetz?K22nlyf9M~-}3`LB=3`I=Aj77}BOhqig
z{K3pItide7tR^hMY*GwaELn_2Y{BeO3`Ok095EbF8BUN)5oa)$6hjeLFt-##5qB_;
z6hjeDFs~Ft5pOVG5nnp1rob&W=ghp++{BkG3=9la3*w7Qb8{1mD&x5z!V39GS*gh-
z3Yo<UiFpc%NyQ~aiOD6I`FRTYX$mD7sR}8HC5Z~fCHY0EDGHf+5TPVJuFMjJqSS(-
z)Z)~<l46J`NMU}OLVjMVLNeG&g`E84M37l}T#iNQ#a3Jj3JNg$G~!Dt3sU1XtrX%@
zQj3#|G7CTo<GF4zWv1L>D@rXXEz0vtW`YD5m;|vwaq?LQ9BL5)IbdNBq0bP?kOK;J
z5QhQG1E~h{(iv7V`mJQX#R+j!d}himj-1TmlFYpH;#=&+;3z8AWV*#toSKtX#L2+G
zPz=(mpm57E*(xTqIJKxa#xK7lGQToE#w9<wG#BLI7{_3jn8cK_#JuFx6y4(dw370~
zqSTn;qU0EeHU3FidIgoYIO5|o^D;}~<8Sdpf?E$JzzwoUl!1Yvf#HUvbPwMR38@a2
z9^M<`k{v9)JfA^MPlo%5fq{XOfq?<+dj+uXqv3MFjKNI7%%C(8%ofaU$(F~M&Y;QR
z_Y!2nOJN2EhL-{i3=EkTEDQ{p4eSgIZklYjIFb_!5|cAaDsQnCXI7<pK&bFr+(oIy
z`8lPanD9X6gx_MzEcWzuj3@#*L6fOSkb!~W7FT{!Ry;HSAwgCo1QO>>E=o--Nrg(?
z5`p?0MHJ+wVhOPK?}$n-2wai0q3A%$h4APL$r%?#GdsD8Kw)!>4PtyUEXRO61#$ui
zf6fAjL?~krJS;%c5FE;a$d#dtK_K-I2{;+bjG_YB2B?})CWMM~h9VvY1_n*$TRg?7
zCGqg^69w@gj*LeH-YtG4VNeKbvVw!GNEsA9EFh6vTnObwQVa|X#UK}eGKc~+6iW+I
zu!JIts0c_OC_6MT+~DB5&LMq~LwbhC6%JJ}Pvs(q%7UmX90p*X+(iz#86{UaRKOvN
zlD0tM2MVFjpdw-_1Jti88CEiaU0n>4hq{U<J+&kro_&O&QHv}n$-uzy8RVA+h6fxx
z5X(TR0~)9dAj2>%E7AppE;M1W=jNAXrh2+SGa@8BxDr!Rd?5MumLSw#gpe#KB-p{}
z=>r=BCojZakX=OBTciil4N?sCB`+kDVb;M?Fp8)W0|P^mA&3B_R3gF?>_tqgic)j)
z%Tm#;LJ?I1*#ft!h!+%8j78!giXT+O<R#{&#>d~{ijU9DPbtj-v3cU-3riDopfddN
z@oAYw#U(kJd8v8%@$t9V<Kt8EljGxWF=ytL6oE>KB1MoTpaf8)1!C!g2on%t4kD~T
z30E{ezPKc@Br`cav81FZGpV#BwKzT=;xAAjfFr616boPiWLU8~0|P@F!$&4oR*sK6
z%&bx~ls_;qvq~*+`3j;waWS%HF@E4+W>sBa29i)cq4I@+nN{@@7ZWS*Ck|#-UNGw`
z2NNqKPQfOFJe`}EnHL}Lr^#`P6O#Y@ld_6HR^DPuNlGitOTNVhsoKCgiflk0U@1v0
zF1f{8Pz3TdD8+%33E0`UIBXz+XIJFOzyMCA#h{A*12ZEd<6Q>XI}D;<SX3B!JHoy&
os4((=2w-Gj;pwQl%q;nkTd>=r!R00kXNO9w_Xl<c7Adf?0DQp<ng9R*

delta 629
zcmeAdT*%J%nU|M~fq{Xc>Yz@#8{<SiiF!8%28O8&5)4WV!3<Ii!Hh8srpzD}3=Bn#
zF-*ZsRuK#gi2@7^F^ozKrVt5+BIXztC59MgQ$~n@0z*1;I<qEAGK32up>hnLwZJyS
zFcdKcGZZleGZrxiGZnD}GfOcPu?Fj~NHG+#1+z*q6tM@h6>+4qYjWITbI#05%}sm>
zGNQ^PzPL0uH?gQPo@?@KMy<($Y;r;?8U0o=tYo~!Qk<HTRt!=$*^kLphchuHB{;b#
zH8t;+0K^DAxClD~1H)%l1_p)(h8r9_pBX0eu_?K;F)%O`fn<s}7#JA91}PMQ0_YY`
zX+cV2Nh;JdVW?@yf*@r@ydVSkKxX;jHj692Ahjs5Br`wH_?95lB!m#y2r$71G7RJz
zKTXcbU)k(<inu`{0w6+oaxA-aJxH<$tPE^BD58o$1SkZG#TXbE+891Ev9NM{;$mdw
z{lvz|%KH^WK(v4q-r|Ul&rQtCi;wryWWB|fpOlrFTmm+tNR)wr;TB6tYH`Ue)`FtU
zyb?&jz-_z5VWW|opHiBWYF8xBz`y{uQ;&gx;R7=xBjXn)UPj)IurCa}jJzLICg*d=
Iuz+*|0O1aTvj6}9

diff --git a/src/__pycache__/constants.cpython-313.pyc b/src/__pycache__/constants.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4ec9b0306337c101c58c8839abb6a14c425239fd
GIT binary patch
literal 527
zcmey&%ge>Uz`zjKt(Pv!$iVOz#DQUEDC2V!0|UcU233Y&h9ZU-#u%nxMs)@ThG3>5
zW-yN#%ws8HiD8Xl3T6fK*oxS|Ja#aTqlg{M;{@~Aia5YLE)XxBTazapVo{{SEq-6e
zi1^~<qSVy9_~Oi}RHzIC!!3SaPd{Xt%no4&hFhXY>Wfl~^K(i|GV}9Zg3P-milhS}
zm-&T}f#H@glD_1`g2d#^lFD1cNE%>*ewv&`ObiSRw^-A1@)JvL@yEv}=H=y=B!cWI
zj*l+_1yT_UNCk6dUP%!f0|P@5JBZ+5U|?9u@EPnB$7HLR(Bjmh;uydDlF0nZ{1}(~
z<kH;KyprM=$6%M3#FVncyyVmr-QxVTlJdl&)R^L;<e23AyyB9?ypm$Qg34PQHo5sJ
zr8%i~Mf?m542%p648@)d3=AKb85tQrurV;o&0uZdpTK&VLH34(G=wGnKt|yLgXo0h
j%M1!PWMrXC*#}ax7Z`*mID?c*NrRbJ7^I7M85kG<2$hh{

literal 0
HcmV?d00001

diff --git a/src/__pycache__/filmObj.cpython-313.pyc b/src/__pycache__/filmObj.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..de5f515560ff1c6023aab81354fd7a58027117a9
GIT binary patch
literal 1424
zcmey&%ge>Uz`(HohhF*`CI*JbAPx+(LK&a47#J9)GDt8eF$6P6F$6QlFqkq!<cb($
zn1Y$CA{ZDFl^7Ue7?l`IArcHl%rPuV3^B~6j1U0@1_(b0Y#&4nMk3UtGp93avLwSK
zKs4MHHegr8FcdKcGZZleGZrxiGZnD}a|ScVum-aPvzo93vq>>zv1Bn8u?4flu$nLh
zvxE3W?7<vG9O<l@T(?-<GIMfYf?QN(5?@@Jo10iv8PCP#Sd?CD#igL2ppc)Gm6}|l
zpb=kES&$m9X{8XKl3JWxlvz-cnV%QWb&Itmvm__=7F$tjNoi4@UosQOg-{G)gM#IA
z7}%k~jG+uUP$>q62!R}swP1cQQz%0YNHu~7(ud%&fSC*o3}BV80ANUG&}8;|36i_T
zpviWNDKn)ABzKE7JvFZg<fz1w%)Inl+(=Ho#h#g)9*|g)p~-ZMr8qSw4XmRWWVwRE
zE&F7vn9$<XqT(38{F2E0%KR9Y{N&Qy)Vz}77{_3jn8cK_#JuFx6y4(dw370~qSTn;
zqU4yg%$!{Rq%6IH%3B=q@tJv<CGqjMctIhn2jj9cFfbHrGcYhTFx(Il?qKO*zac8s
z!*xScyo05O>xP&_2TKq44Qbg9mMa_*H^e17SbBLrgFKcD4<rT#25trh22j9!?t%ws
z5J(Xk<^u;)5XeuMGR&b2LGa*2Nb@lSvxG7Pu^~iYEIx){)=-8Z4j3On^DzXo8FQ;J
zXtMiNae%z5k(pv!#i64BP7`1jI3jGTICT_?z;R()#iyfy6dks=7&SFni$GZb91%qz
zFBb7IFfbJHGB7Y`G8XZJLJkxN3Pl183=Fr}<Kv4<isIvM@qld9gYv+tLLuQRC^<uA
zzWPk{8IlV$R+y}}T4}XHXG6x0lKoXXt9Im^(7X^5aXlpdVo3aj;Dieac^C4Fujkia
z%&-5zz>v@A$n=4M!I8-cL<u;9NKR*_B4LnQ*uYMLxDf1MK9DoPZUv<}O~xWlkTOnC
zBFIb3O^uJg#T6f)o1ape17h>U#}}3+=0Iim<KxpZi;7EfGV@aN^5f${{z}PDj*q{^
zTwGFABnUEE4CG%?kPj0}GLz#IOG=6|lS)fci{s;0GJxF#4w52Jk^mE+U@F#NU|?ut
z_{hY<%JGqlja6z!@CODqR;d*%UqRFd0Y+A5rWwND89+3|5RiV5qjM88^Wx+EG}&&k
zL9#vA&>{(tGgwMei%V{?78GUXl|Z6P9^^z&z<?cbi^B%uQ@bJ+1_lPOORO0f7(OsF
zGBSQ);%9Vb>M;Al0HQw_F|hD-R9$A4e8|n;ZPws&lZCTGrNtXe^{aQPxB7kHWMGj3
GI}QL)kvS0n

literal 0
HcmV?d00001

diff --git a/src/__pycache__/screenObj.cpython-313.pyc b/src/__pycache__/screenObj.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..17ae637a2acb498fcd2a97906772c278ccc4b57c
GIT binary patch
literal 3937
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

literal 0
HcmV?d00001

diff --git a/src/__pycache__/staffUser.cpython-313.pyc b/src/__pycache__/staffUser.cpython-313.pyc
index 40180f169ea7560801a80065e285e3535b188658..3937e79a15d10b7e2ea86d02e02fe74f994cb5bf 100644
GIT binary patch
delta 610
zcmZn?*u~HLnU|M~fq{Wx?oYjR-if@g>X{iB7(n=Q1p@=aREA*2P=*|k0x%9`2m;B0
z*$5(-$&?Yo3uVY*g0L7Eh)@eR3v3GuNT(2pNN3Pw_A3IJbc;cgb@B<uRh)(l3=9nn
z52U0gw=t<QDXVN=%cRe!%frCHP{aWuK%OY#W?*2@WGdogU|_h#QCgf@6jE7`S`0Er
zL7|9$GABz1qtN6JEQ&%a8U0o=6!9`JFcgDa4w5{|q6L;z5|am+rvM^Q6lkz2u_=Q@
zK}O(I)xl~4Q+0?{Nfcog*g%l)iufo0WHo>((q~iQg)0KNeR2Yu1RFod9?r>iY#MA}
zEmD)$u-Ui@fJ9|Lgd&Jg1rZt`LK{SIf_yC+A75OOSdy6>pIA~-l$lgol3E-eUxaMA
zF1rk)>SQl=g$S_GpisZX5g(tMn3)$JugP|cttc@sB|rBTTYgejYH~>tNI{VS$Z%Fr
kkQ&}%Ehx&&D?v6BB*|fuo1apelWJFFHF-a~JqyTi0HXbDn*aa+

delta 675
zcmdnR-z32MnU|M~fq{Xc>Yz@#{6yYY5-bc149pA+44)S<FfdGIhz3c5@Z|eUqV-A)
z!HmI7rc59K28K|E94HIK4q}IhB9p<)ri>7NC_@g&WH2X`fuLGeutEj~hG51}h8#91
zPn98^L6gO=2xM!ffI0)iEe1{YTWm#%c`5n1x7a~+W?sqU4#rg?HVh054Gd4D6z1#A
z(pw?8!t}C~;bdzjRVI0b%}Gr9jJkXb3=BmeuNU!vSiB4j44O<u0t^fcw>V0RQ;R|>
z3sQ?g7AYtc2~OU}+`%X^*_}n5ho6Cgp%~;TkZ=`?7MlnI14A<7<Qi64F-4F`N+1G7
z)m;`PZdH&dVWqaLCTtL;lgn9^L=gspO$F&M5}dq_)c~gG39E`WToKIu+?ja=r6s{7
zMVWc&a4&%D=bmiLrU7<vk<8>oHXC^%kf<DpPzDj|AVLd7=z<9D$$QwOHIQru34&s=
z2t<Hzu^IydLmR^<CRSF($^Y3D7)2&4u!}epae#u6Ek7wMHMs<=xX1`3!U_sl!&|Hc
fMVWaeMW_bf;;_lhPbtkwwJWloT+VLK0`e>XXwGqL

diff --git a/src/cinemaObj.py b/src/cinemaObj.py
index 93411ec..e0f670c 100644
--- a/src/cinemaObj.py
+++ b/src/cinemaObj.py
@@ -10,7 +10,7 @@ class Cinema(object):
     """
     def __init__(self, id:int=0) -> None:
         self.cinema_id = id
-        self.showings = []
+        self.listings = []
         self.screens = []
     
     def create_screen(self):
@@ -22,9 +22,22 @@ class Cinema(object):
         screen.set_screen_resolution(resolution)
         screen.set_screen_size(size)
     
-    def operation3(self):
+    def get_listings(self):
+        # return listing if dict/jason format?
         pass
 
+    def addListing(self, movieID):
+        # get movie details via movieId
+        # append list with movie ID and more details to be showen in listing, eg; name, description, picture path.
+        pass
+    
+    def updateListing(self):
+        # need specify what is to be updated, eg; showing time?
+        pass
+    
+    def removeListing(self):
+        # do we need this? need to test if can use cinema.listings.remove()
+        pass
 
 
 
diff --git a/src/constants.py b/src/constants.py
index 1dba46f..ffd8f86 100644
--- a/src/constants.py
+++ b/src/constants.py
@@ -1,6 +1,10 @@
+
+# screeen size in meaters 
 MAX_screen_size:float = 100.0
 MIN_screen_size:float = 0.0
+# screen resolution in px
 MAX_screen_resolution:int = 5000
 MIN_screen_resolution:int = 0
+# seating capacity in screen room
 MAX_screen_capacity:int = 500
 MIN_screen_capacity:int = 0
diff --git a/src/filmObj.py b/src/filmObj.py
index 2563dff..729950f 100644
--- a/src/filmObj.py
+++ b/src/filmObj.py
@@ -10,19 +10,14 @@ class Film(object):
         self.genre = ""
         self.rating = ""
         self.description = ""
+        self.imgPath = ""
         
     def __str__(self) -> str:
         return f"Film(id={self.id}, title={self.title}, genre={self.genre}, rating={self.rating}, description={self.description})"
 
-
-    def addListing(self):
-        pass
     
-    def updateListing(self):
-        pass
+
     
-    def removeListing(self):
-        pass
     
     
     
diff --git a/src/staffUser.py b/src/staffUser.py
index 13f1945..bc22794 100644
--- a/src/staffUser.py
+++ b/src/staffUser.py
@@ -4,10 +4,10 @@ import random
 class StaffUser(object):
     def __init__(self):
         
-        self.userID:int = random.randint(0,10000)
+        self.userID:int = 0
         self.userName:str = self.encrypt("")
         self.userPass:str = self.encrypt("")
-        self.permissionLevel = 0
+        self.permissionLevel:int = 0
         
     def __str__(self):
         if self.permissionLevel == 1:
@@ -16,7 +16,6 @@ class StaffUser(object):
             userType = "Manager"
         else:
             userType = "BookingStaff"
-            
         return f"{userType} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass})"
     
     def login(self):
@@ -25,7 +24,10 @@ class StaffUser(object):
     def logout(self):
         pass
     
-    def veiwFilmListing(self):
+    def veiwFilmListing(self, cinemaID):
+        pass
+    
+    def createBooking(self):
         pass
     
     def manageBooking():
-- 
GitLab