From 7c23c302c69338f120614a2cea9fea1378dc1edb Mon Sep 17 00:00:00 2001 From: HardiReady Date: Sat, 9 Feb 2019 18:51:01 +0100 Subject: [PATCH] Update schema docs --- .gitignore | 2 -- docs/mongo-db-schema.odg | Bin 16309 -> 16432 bytes server/models/logs/server-fps.js | 35 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 server/models/logs/server-fps.js diff --git a/.gitignore b/.gitignore index f6b5c0c..9e2a547 100644 --- a/.gitignore +++ b/.gitignore @@ -46,7 +46,6 @@ Thumbs.db # Internal Data /public/ -mongodb-data/ server/resource/ server/apib/dredd/data/tmp-resource backup/ @@ -59,4 +58,3 @@ backup/ .cache/motd.legal-displayed .profile .ssh/ - diff --git a/docs/mongo-db-schema.odg b/docs/mongo-db-schema.odg index c7ab0b07c47324ba22aa53fb71e956474c4880b7..26737ec27baa5749636652a6110e00c17cb026d1 100644 GIT binary patch delta 14734 zcmZv@WmFwOvo5@01Hs+hU4y&3CP;91m*BFo5Q4i~aEIWwad&rjch{So_dEBVv(`61 zrn;+os(QL>bT0(m!oh48RsR`mtEfgrDp8!66hMe=2Ies5D=eo7&JZ z?{0VTos4j8OxhNpnN$SVGkIXVKC-p(1%0^d=(h-FcO8Q+x2v@(ZMCIUp9)mQz}%Zq zo){Dvz&Z%pHDd`>YFX?(x^Aa0rdrSrtn^YtVoVTW5cG{rqyz&}Uw%2I;lOoc=^ED3 zTXeUe02YgVEB05om^y5?FDxS6pKS2o6#4Dbc-}wxMNMo1lUM&F+Gq9Z-&D1`rbyBb z=k0FE4qj>3y=a-XG9qdCujR}!6k(Ik=KWO8JH(Y4{|sUnhfkicE-d5FnCu*w^DEtC zwn%6|t`!JYgszf8aqxZEM^Tag1iSqGCZG=j0APdy0RA(_u&}Uy=Qv&yk{Gn6t>duG zgXynY zoVdT@%~o!De&3CYhu(%{_sSg3G*_hw)YgLLYmwNtu2YwyEN>}<5Bp1Wm9$u_~ zKv`f-uB7HpFITp*K$ks(4uk}SqeC;JQynFw{5+IzoL-qPm|Q#_#^}1e;^R!7W-$9K zikboQL$%)`RrinPXt29MninA)G_u&_!o_ejeCm-aNInR1`y%b zLG4oQ=<$QR&6crqG1D5?8S8>-hTZjuE=1UxxY73&_dNYS%M;+oVP7yv(?ORqo4(_* zC!8RmYCgX9S;pj-?imHm$w=Cct6VB06Dzzvn5MpBqsq5m^AL`e2NL_{D+~ADv?@1S zVu>@Kdn$vz**ee{zAdQGnc;b<(Z}aj2XW7b;I&Wd9`=$c*y5(*cA_SEgBhhyxwTW? z1bzx5Fug&g+PA)2Xm|_sc#YamYuSU8Cg!{cUsB^1p<9<~>5RByEJ#9d$z=iskw&i! zfkun$7sTGeJ1`*P5Kac2)mN9OcNzD>HuYi{(&9hCiZz5cbwQ*srGz1!Qb_Ou!CTWc z*VkKdo4PD9gjlHTGX;r>PKk)_Zx(o7ruWUa#EF%lv_i^_Mfp1jr5NMX7@qQ&y#}$U zB9B={JbeW_+4*3}c6O?*F|ilDVj&NhM1Nzq4Gdr&rw@ZNC>%}=GDu#SYPwYqP1tld znlT!u2qaM*@Au-^_V$V8 z(f<5ul0Xh{PC<;~$#QZyseSh&|HA9|bu_?KK$L*fbrl&zHHyq2UG4Ni60swc>QpC5 zOHiN6H&<$L@P{^pZ}JeXcm~eo9BD1iB)V%UCu$fS_E^B9R>Vh6b5fLjlTkRkv_aR$ zJ7L4sTaRdQU4+!rgUr&k>%ge=O+j+-QlN$quGdB+aOdCAp2~Y3WP(+B@WpIMxwnKYVdB>JSO#=K#-{J2vfxc0 zAz0c)X`cg`F+iy_>tJ_UkvYJX8!YnKbp{n2U?%2eZ^S`o8-ANUF{M{&~6hLxVK+7P*V7#Ic%}Zx`uDD zAaU5DccCZ3%z2~|grzj+SLvu92`wx!y`k0#>JW-CtexLTE!QHLJDvc4S$JGC2wL@E z^}0U}%D9^KC0@Aa0CPrE{(;p8Eg+c)&1S2Bk=Dq$(j!mbCOt~0htXHFENI-%a0tH*69#yPiu`S!4qlb|y(5d5Ou*9YNUQEOE$!_1%^f)$SKP3u$g&eJqIf)hg zdgRiVTfG?X`5>G#S_ukE{DAnk1?`(s8#>Qk9C+(^i&ON+K_jL6!nMipW~d{Au0Tw#Y`$Gc^6uCe zN$s6sPWG#+$g)tGhUZ=uwg2SgXrtY45_?8?^>qZrv>x8q2MZO{*ymLFL^-~70aY1Q zTb6t8)gr&cux(}pa>Mf0$U_87Ub zT2SguOgT4a)GliqbtK8VS@q^af}$uC9FoSS5XTsnn8v}N-_Ku`3gxcsy~Ag^COw)L zyvk(5*ii!p3W!`Z#m8)#-s=re&h=hgQAXeU*GSY?!R1$7m~^$#_pz5DQ3@lOW*x8+ zUlpc1_l`CAMxoT8mlHsk78D%vP&cw5B@r;_#mu@d>B^J=4Oaa4tJmNaY28bD>$0sH zyIeidAeo^8M>Fo)=o<0iBXe+5(Fu=PF$M6+9^@;YO*5 zfB)-YO2qMmUUzU>`{pjROtxxjno>>~G10e{O5c;P)9oA&6lniP<}NFlvbIn?x4!yG zA00GLk@x~(`?^lv5>#m{m$~TKB}B4iuAnGH82Pxe{<*dZ`9}Aiv^*)fz{JH|5lz3O zRL^gq$7fHa6OQBSu98G|>tH@m|7~HI4LtG4zH1l!Hi6yVlO{qni5a&r=6eZq7G`$I z`oc^!84o|q#cntbP~IP-M52r1qN?cQn2Pd+TeOlkL#e5-q^+T!4FI8*99Mzkf-al# zvWa-Fk6*LSO;U-^(Ttx@faL?f=hxri1=`5$FDGLcDL54xxw`+tS3n6uTs)%|-T~uy z+cZ@hv@#zR&EEv!NH%7D_=YAWp2ig#5KC>8n-JeEr|#WJ0w3M;rrw2XbSacVVg zM`g6g406ck;R}sZ3+-8zDu{>MIwaYi4Omy%G@KtcmxLYXH3GV8;ep=E)ga6f*{@+L zi1n^=$jdN4Pmnyy5^>B>dCLdqxFSxz+B8(Z+3ESf0`VUR*tKOq2I|0eRZaY46Ipvu zpPwJ>4bsvcW`gLTp0Wx0jth^iIPBsj6^db0W`G-vxRgb;6eC?yB_iV)+Q>->y9-}6 zhsC~`CLcx8n`TS0(NUDu z%_DyhWZ9+jqYd>z%CSN-{8PHRq5CQLyNC_ru=`?e;wXbi>%=J|sZ<3PQJ(M#%YvT6 z*J7*#5(qvBu_z+(O4%>kqHChtCD&O&fu!%=(CQc?&0Ee z^X`k-VlJE`uCQbh~`2zb-P~AWD!@~;ve_y zKHZ{hvD)ynKr0#dpr$1=BQ2IEJS%@R@L}>IyaOSNqTT-Mdb=m_; zx07~x^%~~YakkXQ>n4$YQ#0vXsdGM_z12%HT-FHOBOh~rP3G8uJ7d>x39(nDS9i_N zt)BkL!bGwR+Le!1)>W6dWG2XydA`u1`_U+t0B$g`!u>Sa6ZV1xy2nNk=&H?Yw~$tT zIb}+>6Y~B8d5Vsm-myOZ^>EDEBXP+Kwm~IOZh&&lYwAy;z}+wjI?IZ8mlq@so(Tuy0YLG6ZoUvI3sxnl1;sG`q zhmUCGvvcE^vI?|@bd|J57^WsKf&nwZm1U8adLP5AqUqZ0(%CKT26@D2A-wC<1XUiM z72mS9LA1SPQ8<$KdKV?~Ij4UH*1aLh>ZC52O%lIW)S6Cn*ptlE|L$>pUB33Ht3Mh9 z&J%1yocy>FX%uou`qbV)UN+UAHM+1KN2}ss6n#^tNMsO_ZD)NuT~UVB8a>Y`RbxWQ zFxRggdunL{=EB}b4S#VM?Jxc5#mhBcHN{Z>2Q-iVW2%2WIWp2up*gZ%qcVc)KGznp z@;6MK($V`Vg?)}Qn+=!tmQHo|d>qY?1}xTGaKyNue(YQ%-m;}Cjcu6zq^51x5|)m$ z6K3covGktH#yPpiU3_j_5>RYr+vH2Z)Qx9l(Z@r_hw6$^UTg?wjm_b6=wR!QG%q@T zc97|FbrGgwV;AU8@%LZ|D;D zC*;Rcu6Q;R-pa3Z4EC~)1|Zt#`{t*B3ed*yPp_B^o?(j_eo}X0YcF1VEc_J3x(4Y} zvk~w~t_G!?^JeMq%s@#?sgzAO`P0E1uPvs=wiITEwiT&wMvj6=z&y+yVaatt!EDTT z5kCR5lOJVwySGf!6OnIJ>S$wiqp9`f2aK&s=U*2yS(7&Sj!$`D3lrSi>H zM%+Ezy9mSW=Ag1NVUQ4Xo-41!1})tr_Fbxl`R2sAswK`_Q=Ss8DPwr;MDJDbVo?ut zJnv@58!S@P4;K6I@r6wF$xE@YXua*a{M4Qeq`g}l2;>J!5GwWZgsC}H&Zm@e$HF@hhK_^USxD?VmWJ=4Jk_y za^4{4jo|4;jY3ewKk%yLB2Y+GJoRbs=TDG1Ar{Bf$#4DW<%Lw~=VK>39v>CUSNoB5 z+3#qlq&;o2b}W|H1i~d;qv`SISBimfU$QJTI`JNJb_G9zmd_2MD)QiDa<~LIsg)yQ zDcWZc$UZl3yVmt+i;1&9V*fNtgFS5s#`>x+jv+N7$o zHnf@->8$_(T)Obp2;6HaZZvh&C(%GhK@4}6pM7i0IPR^$?Q`}WKAEv%&$u`yPo|)K zdo<57TvyM;JPJy9AqFi=X$zW5QLPmd)>oyVEgEO-5UR>f;NPVJ70;AWNTQPNUTtv6 zOIgSgLNV1?ns}+2)cUsXH`@!>p%=WSaM3X$%o4akzO);V@ zj7_0Ln-Npk8{Macr=X^c0;rKI3jiiL{mntl7V_aUAhPpgbO}T*gQ@Ia%*-Pa$-wJ( zs#Q=;wHEd9cZ+NcN}8+F3)t6j?aZB*=N-wC1Lys$VF4t)ltIvD8_LWP=OuXT+7!!0 z=vMftqIAVS*0`9T*7DICmo8;btAH%U;rj=f0#;|+K>B3#rL;B2u=WSW{r$sV0%B8( z(Syd-%?oR9M0ubur@Edu7#jbU^Lg!wJw%6vb=9kZwD3NYCKtDkmc8^`t8?7aj7*9u zq_Va;-$Es$QXw8K2~qGe$RHwcyh@5KT)eu;?sD}viFu;?{KywVIwM($`98yqlV1w6 zyT7aGn9086>=s~^sbF%xjq`l-3j>X?1B@}NQ5WmMtdnT{WyBoMT$hI^y$*h&2ksr; zud`-!LoE2W-{q`&A0Whj$KIQkl~PVI0T)n)Y3Cl|e2Pfz@UZ2~b|vpFrUWeeD$4 zLQ%@l#z(uVBX*U6@dHIbX&y=9ML?AN;&}J1oxC__@l`^aNTrS%hpTwu zc-GIyiZOwCUr}?XDL5S4G(fSppU5WZQM+VHE<(OS+aDFGrLRy>MSgub==PAqQun`QXE7SA7=4v3TT0-|V& zyms|k4i5DmY|BW0<0^a88d|P+Q1U+Bcb9_kBn*NroE;*Kx~o1iq5{3FDrORxNg(YA zf6ZFq8=lH&rim&!7UsxtAo`-W=rSEyl1HU8udslFS6Jb&dR{-lyyk%bIpOB$Zx$}p zE5h#XWbPhiq>fO-2f^tDakeTHh0mYNv|>!qC;9^n2e9X;^$zF3{JWA0kT}abspvvF zza0c*O4}d74>qs;WCk^zvr|~4Z?jpW$FyG7!Q1~bocLnh(2R*HX}MGz;P*6|!WY7` z#{{9OBUBh=gph*o_3*{8?ltx0NQ_V|#=qpo5up($WRWB@tG-O-ee`tkn!!$bt^YhC z@BD!Qhu502CA~0D=*S^!PPOqh5=!FbZ7c}Q%sy27Hi5)TNdmOuCj*)L=6Coz6#E~u z?k`h8vCQOX&IEXifHH`Oo}<&?U$QioUwAd@-$2wFth9WwNU|)8&@t{hJrnh&h19XP zNM-nsY5O?3aT5ZX-a_fU9bL>~y9ChmW^V?MlWalxoYWz!U`apNGWR6&wmdu-i*N9> z(CDa}flhG2q_9V}zi@oNI3uX8eI0UsI3%H9i5HCIQj+MHRE(;haI+ZXq@;;@vtSnx zz;hQ>6vAt~gFe1qQn5!=q@8$54j8y5eb*)a{%)8xKN{=$nl@tGlHtx&nc&d(yLL~Z zNH{L@mNW2Tt+hI@8A3zdWu^Se$?JtmNeOO$7!=ir#x83TVp}Vli$JD%nwI7jh%t@` zt`{PHT-SH>sp`nLs+(_|(ak7eVR2FEDVjn|1CSkzGUCGu4A4!-RN;m&?Z$0m9y^C9 zBnLSUVwS#QRAt^s>x)-O@O>Ym&4MhDx0E;P; zGBTDb_Z^~svG2GzzlJr@4J)OFS1FWMH{kTgPaI^tS@S10;bPyoLBBTm!I$j zT#!Ky?rfZ~z|G5UT%$;o>_9$m7EZQDOdr&HY!klmPQT60U#5 znut6epAh|Dk(rR^A9*0;|BryEX#mk!kr^Svgs`MHzV&S*7KPxqq@sTXHhf3V$c()>fCd z{3)xgt*xtXu5E6pZ*Fa=`%7C|o9o-#+YA15mDcwbxAs-Fj+C}9*0uK3b&R!vyF1#4 zIyyTlyO--byX(6~!CgHqJ)@1?lQq4ojf3m0ebeB<>DHkY@aSe&1E{vAt*#5)I@kv8 zYVYc7AMEJ_5A}kF20MEHUVX#8gMEENBg1{YLw!S|L;a(pqrJn^-D9gmV>3e&%VU${ z{gbO>Q`4g}E0aB4(_;hEV-*V>2@|v-3;yi}Q0!%S&^!i}Q;s zOYFwpYt@YKDwVBKHg{}3?oz3;*oz?5z)$Q%=o&BS|qm!e( z-J^q}lf(Vf)6>m^tL>w!qw|}+>$kJ3yOX<@i?@%YW8<;CUA<=NBq z`R(oP&HdBe^ULG?-Q&aK)8qa7`}7$8IXp%?9TxT;nVfse_BU<*ZNR4Ln-}O8YJab7 zD%tebowJdZ8o=M+WZ^}%Po&dwkOwWWZ5hDpISB9=(pIo2V8(5??lZ%>i=P2uEA_Gi zK&E)n0AK?KsuK4Lalw80TWKm@KSBbniTZt=Q!m8ewpzo7ncT88U<*}CDNs$6oS)=ZuxrddvpplKvxWKjCIf)dlp|!7PCSO z%y6p?K6M04Hp-HRJ55zqGB~Y0~xWE9OW)q>9$Bo6G_B6K+|Pd6%Jx8I8zGUhDd9AcEBeL?0j)#HhvWWYz?C& z0h|FjC_vgNf^bwCTf{+8SPQg-5h6HNZ`J5>D0|b-+Woc{O@K=!?rp7wu`Q=@fZQ1( zX};!uVZQ3ypl1HbAVg!&5_3pe^)olgHLh$iV1g&@=Q`r!~|>1A=a- z@zQ5tg_l2wAWHO4M6W8N96{bNU`+#UI99AAWlfl4KHNl80x6I-A{c@X2C&-oIKK_H zETg3##X27VNO57w{jn63(tr#mRoEWF20qJ>GHNT;=q{#&lTG9L!o0eFrlyGu6Xi#B z?)hRWq9^s+6rOCA&=cSVBMl9gf$j6-3yQ#;AMZV=093UDMT%>IMaZq&_3cAcbE+Nh zQ0u${_MWN35w1AVSSb|hMJ7kbu1MP#ufUYj>`&rnt6nTWm}h+=tIj^4EeRl1YOyqH*Kfsx1$IAUfe^qJZ&61k$^-aHOPwMvC^n^7=1Gi1u#+&N|SnXN4Wrp z6%A7)Sr8|;n?nDf_sn1B<2ILl7K18SUvvWaulK{^s37t~pkmqt5=SvrsP->vSRk8c z2kyim0)p_WDe-!+U%5v=09IcOJD)ZaOh-WmZB|Rs(ZPxf%vzouoV!;^48UNmMBl{{ zq066vr09_B^#RZW2lhY?qF+JjsbWI>cUAR#y&Hh&*Ns7_EU z1Oh1`oIf3G+zXxx1S%tvxj#3Yr8kET4z&^JkG^5FIzKze3s1#DIZMFI7UbVD-srhZ zI0_Jl9CKH*Gm_L((P^)9^Zmh6gi{{N>hkgv0B!Cp2w2senoa!iLj%3S;_JE>SFSk2KPc?SLb&Tyci&IImuUvS>Qg8+mjZtLl~8Twl*yhzgi z35UuTkwc=FeUN%B{~ifK z#ufM~&j2=iG7Ko!STh9WVhqrL{lZG8Mzm@OhsAnj3dH}m$Bm69Hkl$i$|B`TtTfuY zm6*d;vPcLuP5d}6caY=-XbS0$U!6#cWEWBFThE9dh~dTY{BeP$)QgVVb>uO6_%0Lc zJLExXTn_F;c@*Adcoi2z1zq3aeD{_7l_~BNygiT1NdRPRO1D<+><1L245C?3Xom2F zU+QrTBA^2Ok>VKk!yX0&#S{QFk{Jxfaa8*?vB>;Xm2@@)+A@WHr%7%^lWkOQ6~7NB@1?8NUf}4GgTqQ01E&~%H-4P9dyz__g7={KSbzY>54hgT zs7`z4hJ)?3Dwh)x;7|;hAqOmbzuWz3r5$Tx^=FfVrKsox_4oVp^(4$UWKgP9%!EzJ zYr3isPHLJoFzEY^df~>nG16PMmRp(l+tv2_zUV(v*@pr0y<6^>MZEyUqiYg|XuTL? z`Y?=61O$8Lvr{ky{)B+g5Eg_Pi@6SkkT`PS zsrOt0!&h|>6e(07IS3wt?xGveO}m#o(}j>guimKZpHzM^>3IcdGm*7~TRraPZQIFg zgbX-cDi18=cDLg)T$sb`IF{Ej5ywiT~OvYolgk*R0g1vuq7RX*@-G@IpCKS z@SM@OOUA}E^rClI331Y@E9FVu#Sp-a82t6v5@;#-%`>nxsLh`&08w4Ws1`w_UB-Fw zH>6UBZ6lP7?@;E z21g?gDD3exa6C@tcs)9_4ydvL;;3Uo(M3H znHOOjDW;__k|j<1%Mt;=?_OVYO)f)yp&Q9Srvya+v>nqxscvI;QTVxrZuW_#x^y$L zhBUyZtN4RyS`>f^$VO>-u_t_~$iva|~%dP6P#Tx3>*LR}{7v z$i_Ql4n_C9CkL{g4@)dAqQQKoz#VR4Os2sE=z*_7mWiJxh0vDX4B5$goaXNb z2-WweF91SJn)$PRp4F_a(q0i36@w5F1OF^C0z!!P1>1j@M&SjtCByqE(Ju1?sz(;M z&?)$!fNJhAxAhQ@bLaBsGz2H0d-Vt9n3P8Na@8|alLBb}a>ikzmDG0-qP;uV$^NKhV3DOXO+Ji3xG8_!xP#Y^x%b03W&Cp>onX_FMG*+3Nto!b6NIA3AZM)1}eh{IK zW^D=sk#mHlLs@(tRDXbo1h_t5i{kP(_!uhFZki&)ldG_Ct5$iKvtLITV-KEVZUePGi9f?)HI$_4Vxd` z9O@^~n<)G6-&TSg{>JG&DmWDu0`IK7a}}j@)1^_28<*b|?zC;B-rsO~{n;_940s6A zJ{QT!O*ewqWy26Khmb%P>FB2hSjhLn^P8Kcmo8@h4J+}2o~;3p+?SHtE-<949n&P| zpz^J*9mt6V7@zA2H$dB(a*PGN%#si`;-TKPo3Lme?eOhRr$3$t832T;d7SaHF}=hJ z^UN>sZ67`w8~Bdl1DYm@L)U}zxPheH1XjJcOM$W>7{EBwc~EW)V>?~` zPY9&nr>G&6RY&W7LM*Hr*Wu0Ha1dQz$LJ^S7nJ=bkrzW6%Y(94 z)B_lFaPTjM!GN68rtW(TeCY*_C2|!!)ZX5(y&L_s6Op_9$!gF7MG9IQNj+X3YU50?jzeNPDLx81Jt#S_ zU6OjkttYY}UbX>7QInfvgdHTvv%S~Et&jffuh;8FZ^7;2iu7piW$BJelKw$ zUbinPQTHKD5H^Kt!)4k0LtZDHU2S3nR0CU9*?P7nr)a>9jrK(Wfoe`LSEzs#y51|p z&H&0BA%$EXYJwgh)v}ejDEl08t8*LwRZMvjRNW z&U!zh(Zc@zXtR8*to};wl>KmUF+44R(wEyTz~Pxf_jp3VG4KkANAmxe{Q|Rj@peK7 z{?z^a7VpoB{Vy7o!b%Ua42u(JNVu}4N>!jz-&r%Yh*wk6L4^y$4T3^|VzSXEA7~q0 zzozz#`wo1Cp!!;9yOedOkZAY2HQ*d&4e5Kl*UOsTaHbAD0(A`oH&1#K@|YOfA6wtO z_qQUH^@5kR){QnSr@!Z)A|x~mIaKw3H)LQV!&>xBqgJhcHJ29!!D}$G$4wiTbQcU- zX&^A!ofqg2M;s3IhuN6xXixETYT$bE*O+qpnT^@XOUK#v!&9&rT89r9mtX32fi*pT z%edq&Mq#^Wm~nrz&sA%`eH$}(X-Lh4YrYTaGv2bX&U0M6+$-2kV}SP^reoH4?9$p? zXrog%E%zI=DN9HM9fb`~O`=NPyKyGh0kBzd-ket@8WaXP>=*LDCvJiOmlRaqpQ}5P-#Jn5qEDhL42Hg+Y7edi&?hjG*cEOy?EOHEETuIJ)GOo9 zRM>BSvUPGmu5qALRntD*61|VPtQOVH_sxMY*aZHRc9_}&5wxoIOY0!D0hPo)bK!gK zuDPiH+CweUI2OG`8}73ByRxX^0${U&mS z7YUia+js!&yERx@f_@Us-a=Sk}RuOD%YAqZVq{!*7G6cQ!kj%9KHXpakt&u}#~m z)r~k^%#M{U_Mpm{RQx9}=UAsTtPkDSI9DF$LNS?0P@}}>GlF-IIm2O(1pC29!eMYx z_K@&!Pl}cRg&KXskKCiY?{R^WUc3i_U@APVpv`JG-_?nVgHPR0VZq!cb>*Jfk^|A? zM%IWCtq~KsYthD335Qc9WCDA~ANflga&d3rybFv8-B0X9Aw@qQOktnI;i~Yt)hAjT zJ*qqFK?>_CM~5Aecpb@KZ6mfl$lpa*^_np(wiRf`ZH@cM>J2`z{*ADFia**#U@oVj zOTgr=rldpno=0KK6IP}X?)d41-yDMZhy1|wq@Gdfr+%VZTu5mWYAGz~pA`~8rCLsX z=Agd5#42ZNwhlB(GGuabP8bVhJ*qwP)p7^n zw0p?u5gE2T#jL*#jxeefjNf_LJ7Oj6drYu?r_C;Ij7t#t1^vw4JL62AB#G&uqlsao zp$k%67-!ppwnGhQMIfcQh6LMcK7#L+btBwS}4}q-{|~p>(e>&s4 z^hj~1VWiqddfuX8HVMK7UR@9eB}zKdxATwpn~VOfa#_agna^}10!kVpR`<_HxSJ?u zS$r0=?Qd{ymor>?aOY7&a%&0f!V92JVW7cj3da;7$WOlX9t`*hvNovtBx1GkWSF?Z zAXnHi<>zO(Y; zNgQ-kO4!Agg^iKWw;^*O8`>4S&0AKNke8z8;+Hdoo)?#VZ81>{_=0JOQU1>ti`vh!qAm*3!bcHhG>W|B8qbTh^9KfLFJr=MT?U|Mm-WkMF9q zG7j7;6u-RBF91}8TjN`FO)m20sov4;N7n%G8fP)rMnj+7N#D_lPD zYNvlM4t!n;a^{<1%3beQoG}C)ompK#s5l9?HR?^U&XQFeF+~B_h=Ik5v!dExT4gjz zi3|_#{X&SPPVwet1or<(@Q;wPA`P%|AdLWckbH5oAh6GVaExIXuX?hqQ|?9d3sy4N zzX&u&|CYnCJFeC?eW>g2J!VIm3!&o)R#0tg6xZN3`emz6e|`T<9&HE8&4fMx`quq= zUznk>@p}5iXN&Wb-%aP6>1W4YmSL3TdPJz!)jqI-OMCdDt? zA%(dpDq*VhBS(FJhPznkeH`k&xA~IWat_(JZI0`E_F0M*VMfnTaL_bz==Mg#B!*Oy zEGkMrgv)T1_()=C14{|$Xlum4)y@<6X=qBr$Xn3-`=xB(jTZO!E3W9178GC<*Nkpq zhdxDgF>_0wsGf6Va1h;l?k}SViirbh-p^^6ZNZ8`(GAr5wBGwBE~C=_}LuzUB){K|IJkecLC?L2RP-8cTNM8PGtx;E>7M4wMrRWr|`pk!uQNf&`22 z9xk-+k9{9Lr~?k%=qaawFDAF-CC7Ur$6Tt%=L2$=haQJnv=u(}lVje`Dhi@8Kcgi% z3i4_9TzXIZu6*OrTQ8Ur^qT|RzmU zayWix)(B3(l#@Pg@WsN8=qB^Qp7CqgFyhqUc4#@D((xU*Oes`h8^sqplX9W;S6wfBa^xum5i2ka^j*lUNiQg3ZZ}ku_@xDSd z|E1^uVy1s_Q{4ZhhmAPCnh2laf4{J-(*GQB`2Y35c)YSO-aot6!i10xeDSD!IPuxS Ls4%anHgecW@d`<&$s(_|Myfi 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 diff --git a/server/models/logs/server-fps.js b/server/models/logs/server-fps.js new file mode 100644 index 0000000..99aa0ae --- /dev/null +++ b/server/models/logs/server-fps.js @@ -0,0 +1,35 @@ +'use strict'; + +const mongoose = require('mongoose'); +const Schema = mongoose.Schema; + +const LogServerFpsSchema = new Schema({ + war: { + type: mongoose.Schema.Types.ObjectId, + ref: 'War', + required: true, + }, + entityName: { + type: String, + required: true, + }, + avgFps: [{ + type: Number, + get: (v) => Math.round(v), + set: (v) => Math.round(v), + required: true, + }], + minFps: [{ + type: Number, + get: (v) => Math.round(v), + set: (v) => Math.round(v), + required: true, + }], +}, { + collection: 'logServerFps', + versionKey: false +}); +// optional more indices +LogServerFpsSchema.index({war: 1}); + +module.exports = mongoose.model('LogServerFpsSchema', LogServerFpsSchema);