ó
    {‘ÊjQi ã                   óÖ	  • S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
JrJrJrJr  S SKJr  S SKJrJr  S SKrS SKJr  \" S\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S\\
" SS
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S\\
" SS
S9SS9\" S\\
" SS
S9SS95      r\" S\R,                  \" S \\
" S!S
S9SS9\" S"\\
" S#S
S9SS95      r\" S$\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S%\R,                  \" S\\
" S	S
S9SS9\" S\\
" SS
S9SS95      r\" S&\R,                  \" S\\
" S	S
S9SS9\" S'\\
" S(S
S9SS95      r \" S)\R,                  \" S*\\
" S+S
S9SS9\" S,\\
" S-S
S9SS95      r! " S. S/\5      r" " S0 S1\5      r# " S2 S3\5      r$ " S4 S5\5      r% " S6 S7\5      r& " S8 S9\5      r' " S: S;\5      r( " S< S=\5      r) " S> S?\5      r* " S@ SA\5      r+ " SB SC\5      r, " SD SE\5      r- " SF SG\5      r. " SH SI\5      r/ " SJ SK\5      r0 " SL SM\5      r1 " SN SO\5      r2 " SP SQ\5      r3 " SR SS\5      r4 " ST SU\5      r5 " SV SW\5      r6 " SX SY\5      r7 " SZ S[\5      r8 " S\ S]\5      r9 " S^ S_\5      r: " S` Sa\5      r; " Sb Sc\5      r< " Sd Se\5      r= " Sf Sg\5      r> " Sh Si\5      r? " Sj Sk\5      r@ " Sl Sm\5      rA " Sn So\5      rB " Sp Sq\5      rC " Sr Ss\5      rD " St Su\5      rE " Sv Sw\5      rF " Sx Sy\5      rG " Sz S{\5      rH " S| S}\5      rI " S~ S\5      rJ " S€ S�\5      rK " S‚ Sƒ\5      rL " S„ S…\5      rM " S† S‡\5      rN " Sˆ S‰\5      rO " SŠ S‹\5      rP " SŒ S�\5      rQ " SŽ S�\5      rR " S� S‘\5      rS " S’ S“\5      rT " S” S•\5      rU " S– S—\5      rV " S˜ S™\5      rW " Sš S›\5      rX " Sœ S�\5      rY " Sž SŸ\5      rZ " S  S¡\5      r[ " S¢ S£\5      r\ " S¤ S¥\5      r] " S¦ S§\5      r^ " S¨ S©\5      r_ " Sª S«\5      r` " S¬ S­\5      rag)®é    )Ú
MEDIUMTEXT)ÚColumnÚIntegerÚStringÚFloatÚBooleanÚDateÚDateTimeÚ
ForeignKeyÚTableÚTextÚUniqueConstraintÚIndex)Úrelationship)ÚdatetimeÚtimezoneN)ÚBaseÚuser_companiesÚuser_idúusers.idÚCASCADE©ÚondeleteT)Úprimary_keyÚ
company_idúcompanies.idÚ
user_sitesÚsite_idúsites.idÚuser_machinesÚ
machine_idúmachines.idÚcompany_modulokÚmodul_idz
modulok.idÚuser_modulokÚebk_projekt_teruletekÚ
projekt_idúebk_projektek.idÚ
terulet_idúebk_teruletek.idÚ&ebk_projekt_alvallalkozo_tevekenysegekÚprojekt_alvallalkozo_idzebk_projekt_alvallalkozok.idÚtevekenyseg_idúebk_tevekenysegek.idÚuser_ebk_projektekÚebk_projekt_koordinatorokÚuser_vivu_ugyfelekÚ	ugyfel_idúvivu_ugyfelek.idÚvivu_ellenorzes_epuletekÚellenorzes_idúvivu_ellenorzesek.idÚ	epulet_idúvivu_epuletek.idc                   óŒ   • \ rS rSrSrSr\" \SSS9r\" \	" S5      SSS9r
\" \	" S5      5      r\" \	" S5      SS	9r\" \SS
9rSrg)ÚModuléf   u¸   BÅ‘vÃ­thetÅ‘ modul-tÃ¶rzsadat (jelenleg EmelÅ‘gÃ©p Ã©s TÅ±zvÃ©delem) - a rendszeradminisztrÃ¡tor
(Admin szerepkÃ¶r, company_id==1) itt is bÅ‘vÃ­theti a listÃ¡t kÃ©sÅ‘bb, kÃ³d nÃ©lkÃ¼l.ÚmodulokT©r   Úindexé2   ©Úuniquer>   éd   ©Únullable©Údefault© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__tablename__r   r   Úidr   ÚkodÚnevÚikonr   ÚaktivÚ__static_attributes__rG   ó    Ú/var/www/website/models.pyr:   r:   f   sW   † ñ_à€MÙ	� T°Ñ	6€BÙ
‘˜“ D°Ñ
5€CÙ
‘˜“Ó
€CÙ‘&˜“* tÑ,€DÙ�7 DÑ)ƒErT   r:   c                   óÄ  • \ rS rSrSr\" \SSS9r\" \" S5      SS9r	\" \" S5      SS9r
\" \SS	9r\" \" S
5      SS9r\" \" S5      SS9r\" \SS9r\" \SS9r\" \SS9r\" \SSS9r\" \SS9r\" \SS	9r\" \SS9r\" \SS9r\" \SSS9r\" \SSS9r\" \SSS9r\" \SSS9r\" \SS9r\" \SS9r\" SSSS9r\" SSS9r \" SSS9r!\" SSS9r"\" SSS9r#\" S\$SS9r%Sr&g)ÚCompanyép   Ú	companiesTr=   éÿ   ©r>   r?   rC   rE   éô  F©rF   rD   ÚUserÚcegzUser.company_id©Úback_populatesÚforeign_keysÚSite©ra   ÚMachineÚ
DictionaryÚMachineTypeConfigr:   Úcegek©Ú	secondaryÚbackrefrG   N)'rH   rI   rJ   rK   rM   r   r   rN   r   rP   Úadoszamr   rR   ÚcimÚelerhetosegÚlicenc_max_gepÚlicenc_max_dolgozoÚlicenc_max_ugyintezoÚketlepcsos_hitelesites_kotelezor
   Úmfa_politika_valtozott_atÚ
berbeadhatÚjelszo_ervenyesseg_napÚjelszo_min_hosszÚjelszo_kell_kisbetuÚjelszo_kell_nagybetuÚjelszo_kell_szamÚjelszo_kell_specialisÚjelszo_elozmeny_dbÚjelszo_hazirend_valtozott_atr   ÚusersÚsitesÚmachinesÚdictionariesÚconfigsr#   Úengedelyezett_modulokrS   rG   rT   rU   rW   rW   p   sw  † Ø€MÙ	� T°Ñ	6€BÙ
‘˜“ DÑ
)€CÙ‘V˜B“Z¨$Ñ/€GÙ�7 DÑ)€EÙ
‘˜“ tÑ
,€CÙ™ ›¨tÑ4€Kñ ˜G¨dÑ3€NÙ °$Ñ7ÐÙ! '°DÑ9Ðñ '-¨W¸eÈdÑ&SÐ#Ù & x¸$Ñ ?Ðñ ˜¨Ñ/€Jñ $ G°dÑ;ÐÙ˜g°Ñ5ÐÙ  °%À$ÑGÐÙ! '°5À4ÑHÐÙ˜g¨u¸tÑDÐÙ" 7°EÀDÑIÐÙ °$Ñ7ÐÙ#)¨(¸TÑ#BÐ á˜°ÐDUÑV€EÙ˜°Ñ6€EÙ˜I°eÑ<€HÙ ¸UÑC€LÙÐ.¸uÑE€GÙ(¨¸OÐU\Ñ]ÓrT   rW   c                   ó˜   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \
" S5      SS9r\" S	SS
9r\" SSS
9rSrg)rc   é«   r~   Tr=   r   rZ   r\   rC   rW   rd   re   Ú	telephelyrG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r   r   rP   rm   r   r_   r   rS   rG   rT   rU   rc   rc   «   s\   † Ø€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€Cá
�y°Ñ
9€CÙ˜I°kÑBƒHrT   rc   c                   ó²   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \SS9r\" \SS9r\" \SS9r\" S	5      r\" S
5      rSrg)ÚSzakertoMegbizatasé¶   u¼  Egy EmelÅ‘gÃ©p szakÃ©rtÅ‘ Ã–NKÃ‰NT beÃ¡llÃ­tott jelzÃ©se, hogy egy adott cÃ©gnÃ©l a megbÃ­zatÃ¡sa
(szerzÅ‘dÃ©se) melyik vizsgÃ¡lat-tÃ­pus(ok)ra szÃ³l - CSAK a szakerto-dashboard tartalmÃ¡t
szÅ±ri, a tÃ©nyleges vizsgÃ¡lat-rÃ¶gzÃ­tÃ©st (routers/inspections.py) NEM korlÃ¡tozza (2026-10-02-i
user-dÃ¶ntÃ©s). Ha egy (user, company) pÃ¡rhoz nincs rekord, az "mindhÃ¡rom tÃ­pus" alapÃ©rtelmezÃ©st
jelenti (nem korlÃ¡tozott, visszafelÃ© kompatibilis).Úszakerto_megbizatasokTr=   r   r   rE   r^   rW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   r   Ú
szerkezetiÚfovizsgalatÚibfr   ÚuserÚcompanyrS   rG   rT   rU   r‡   r‡   ¶   sv   † ñ=ð
 ,€MÙ	� T°Ñ	6€BÙ�W™j¨Ó4Ó5€GÙ˜¡¨NÓ!;Ó<€JÙ˜¨Ñ.€JÙ˜¨$Ñ/€KÙ
� $Ñ
'€Cá˜Ó€DÙ˜9Ó%ƒGrT   r‡   c                   óÒ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \" S5      5      r\" \5      r\" \SS	9r\" \S
 S9r\" S5      r\" S5      rSrg)ÚTervezettVizsgalatéÈ   uÉ  Egy szakÃ©rtÅ‘ sajÃ¡t, szemÃ©lyes munkaterve - egy adott gÃ©p adott (esedÃ©kes) vizsgÃ¡lat-
tÃ­pusÃ¡hoz rÃ¶gzÃ­tett tervezett dÃ¡tum, ami eltÃ©rhet a jogszabÃ¡lyi esedÃ©kessÃ©gtÅ‘l. A cÃ©g
Admin-ja is lÃ¡tja (nem privÃ¡t adat), de csak a szakerto-dashboard ÃœTEMEZÅ� nÃ©zetÃ©hez
kapcsolÃ³dik - a tÃ©nyleges vizsgÃ¡lat rÃ¶gzÃ­tÃ©sekor (routers/inspections.py general_jegyzokonyv)
a megfelelÅ‘ sor automatikusan tÃ¶rlÅ‘dik, hiszen a feladat ezzel elkÃ©szÃ¼lt.Útervezett_vizsgalatokTr=   r"   r   rB   rC   c                  óJ   • [         R                  " [        R                  5      $ ©N©r   Únowr   ÚutcrG   rT   rU   Ú<lambda>ÚTervezettVizsgalat.<lambda>Õ   ó   € ´(·,²,¼x¿|¹|Ô2LrT   rE   re   r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r!   r   r   Úvizsgalat_tipusar	   Útervezett_datumr   Ú
megjegyzesr
   Ú
letrehozvar   Úmachiner�   rS   rG   rT   rU   r�   r�   È   s„   † ñVð
 ,€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:Ó;€JÙ�W™j¨Ó4Ó5€GÙ™f S›kÓ*ÐÙ˜T“l€OÙ˜ tÑ,€JÙ˜Ñ*LÑM€Já˜9Ó%€GÙ˜ÓƒDrT   r�   c                   ó,  • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \
" S5      SSS9r\" \
" S5      5      r\" \
" S5      5      r\" \SS	9r\" \
" S
5      SS	9r\" \\" S5      SS9r\" \\" S5      SS9r\" \
" S5      SS9r\" \
" S5      SS9r\" \
" S5      SS9r\" \
" S5      SS9r\" \
" S5      SS9r\" \SS9r\" \SS9r\" \SS	9r\" \SS	9r\" \SS	9r\" \SS	9r\" \SS	9r \" \!SS9r"\" \
" S5      SS9r#\" \!SS9r$\" \
" S5      SS9r%\" \SSS9r&\" \!SS9r'\" \SS9r(\" \!SS9r)\" \!SS9r*\" \SSS9r+\" \
" S5      SS9r,\" \SSS9r-\" \SS9r.\/" SS\	/S9r0\/" S\1SS9r2\/" S\3SS9r4\/" S\5SS9r6\/" S\7SS9r8Sr9g)r^   éÛ   r}   Tr=   r   rZ   r@   r?   rE   é   ÚCEGr   rC   rB   r\   Fé@   r]   rW   r`   Úallowed_usersri   rc   re   r:   ÚfelhasznalokrG   N):rH   rI   rJ   rK   rM   r   r   rN   r   r   r   ÚusernameÚemailÚhashed_passwordÚroler   rR   Úhozzaferes_szintÚtelephely_hozzaferes_idÚutolso_ceg_idÚbizonyitvany_szamÚkamarai_azonositoÚengedely_szamÚtanusitvany_szamÚbizonyitvany_pathr	   Úorvosi_alkalmassag_ervenyessegÚjogositvany_ervenyessegÚjog_uzemora_rogzitesÚjog_dokumentum_feltoltesÚjog_gep_szerkesztesÚjog_datum_szerkesztesÚcsak_olvasasr
   Újelszo_valtozott_atÚaktiv_munkamenetÚmunkamenet_kezdete_atÚmunkamenet_ipÚszabadsagonÚszabadsag_kezdete_atÚszabadsag_visszateresÚjelszo_lejarat_atÚjelszo_emlekezteto_atÚ	aktivalvaÚtotp_secretÚtotp_megerositveÚtotp_utolso_lepesr   r_   r   Úallowed_companiesr   Úallowed_sitesr    Úallowed_machinesr%   Úsajat_modulokrS   rG   rT   rU   r^   r^   Û   so  † Ø€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ‘f˜S“kÓ"€HÙ‘6˜#“; t°4Ñ8€EÙ™V C›[Ó)€OÙ‘&˜“*Ó€DÙ�7 DÑ)€Eñ ™f R›j°%Ñ8ÐÙ$ W©j¸Ó.DÈtÑTÐñ ˜7¡J¨~Ó$>ÈÑN€Mñ ™v c›{°TÑ:ÐÙ™v c›{°TÑ:ÐÙ™6 #›;°Ñ6€MÙ™f S›k°DÑ9ÐÙ™v c›{°TÑ:Ðñ &,¨D¸4Ñ%@Ð"Ù$ T°DÑ9Ðñ " '°5Ñ9ÐÙ% g°uÑ=ÐÙ  °%Ñ8ÐÙ" 7°EÑ:ÐÙ˜'¨5Ñ1€Lñ ! °DÑ9Ðñ ™f R›j°4Ñ8ÐÙ" 8°dÑ;ÐÙ™6 "›:°Ñ5€Mñ ˜¨%¸$Ñ?€KÙ! (°TÑ:ÐÙ" 4°$Ñ7Ðñ ˜x°$Ñ7ÐÙ" 8°dÑ;Ðñ �w¨°tÑ<€Iñ ™ ›¨tÑ4€KÙ˜g¨u¸tÑDÐÙ˜w°Ñ6Ðá
�y°È
À|Ñ
T€Cñ % Y¸.ÐRaÑbÐÙ  °:ÀÑW€MÙ# I¸ÐP_Ñ`ÐÙ  °LÈ.ÑYƒMrT   r^   c                   ó  • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \\" S5      SS9r
\" \" S5      SS	9r\" \" S5      5      r\" \" S5      5      r\" \" S
5      SS	9r\" \" S
5      SS9r\" \" S5      5      r\" \" S5      5      r\" \SS9r\" \SS9r\" \\" S5      SS9r\" S \/SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" \ SS9r!\" \ SS9r"\" \ SS9r#\" \ SS9r$\" \%SS9r&\" \ SS9r'\" \" S5      SS9r(\" \" S5      SS9r)\" \SS9r*\" \SS9r+\" \SS9r,\" \SS9r-\" \SS9r.\" \SS9r/\" \SS9r0\" \" S5      SS9r1\" \SS9r2\" \SS9r3\" \SS9r4\" \" S5      SS9r5\" \" S5      SS9r6\" \SS9r7\" \" S5      SS9r8\" \" S5      SS9r9\" \" S5      SS9r:\" \SS9r;\" \SS9r<\" \" S5      SSS S9r=\" \SS9r>\" \SS9r?\" \" S5      SS9r@\" \" S5      SS9rA\" \SS9rB\" SSS9rC\" SSS9rD\" SSS9rE\" SSS9rF\" SSS9rG\" \" S
5      SS9rH\" \" S
5      SS9rI\" \" S
5      SS9rJ\" \" S
5      SS9rK\" \" S5      SS9rL\" \" S5      SS9rM\" \" S5      SS9rNS rOg!)"re   i=  r   Tr=   r   r   rC   rZ   r[   rB   r?   FrE   r"   Ú
tartozekok)Úremote_siderk   g        é
   é<   r\   r¢   õ   AktÃ­vc                  ó>   • [        [        R                  " 5       5      $ r”   )ÚstrÚuuidÚuuid4rG   rT   rU   r˜   ÚMachine.<lambda>‹  s   € ÄsÌ4Ï:Ê:Ë<ÔGXrT   )rA   r>   rF   rW   rd   rc   Ú
InspectionrŸ   ÚFileÚAuditLogrG   N)PrH   rI   rJ   rK   rM   r   r   rN   r   r   r   r   Ú
megnevezesÚgyartoÚtipusÚ
gyari_szamÚleltari_szamÚgeptipusÚ
teherbirasr   Úalapadat_megjegyzesr   Úis_teherfelvevoÚ	fo_gep_idr   Úfo_gepr	   Úgyartas_datumÚuzembe_helyezes_datumÚszerkezeti_vizsgalat_datumÚfovizsgalat_datumÚbiztonsagi_vizsgalat_datumr   Úszerkezeti_vizsgalat_uzemoraÚfovizsgalat_uzemoraÚuzemoraÚnapi_atlag_uzemidor
   Úmatrix_kezdo_datumÚmatrix_kezdo_uzemoraÚuzemora_riasztas_szintÚteher_classÚnehez_korulmenyekÚveszelyes_kornyezetÚszigoritott_szabalyÚebsz_ciklus_honapÚkezelo_egyutt_emelkedikÚkezeloi_munkahely_magassagaÚveszelyes_teher_mozgatasÚkockazatertekeles_pdf_pathÚ#egyedi_csoportszam_kockazat_alapjanÚ"vizsgaloi_csoportszam_felulbiralasÚkozuti_forgalomÚrendszamÚforgalmi_szamÚkozuti_vizsga_datumÚcalculated_m_fokozatÚcalculated_csoportszamÚstatuszÚstatusz_okaÚkornyezet_megvaltozottrÓ   Úletiltva_napi_hiba_miattÚberelt_eszkozÚberbeado_neveÚberbeado_elerhetosegÚberlet_lejarat_datumr_   r…   ÚvizsgalatokÚfajlokÚnaplo_bejegyzesekÚemelesi_magassagÚfesztav_gemhosszÚ	meghajtasÚteljesitmenyÚegyedi_1Úegyedi_2Úegyedi_3rS   rG   rT   rU   re   re   =  s¸  † Ø€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ�W™j¨Ó4¸tÑD€Gá™˜s›¨4Ñ0€JÙ‘F˜3“KÓ €FÙ‘6˜#“;Ó€EÙ™˜s›¨4Ñ0€JÙ™& ›+°Ñ5€LÙ‘f˜S“kÓ"€HÙ™˜r›
Ó#€JÙ  °Ñ5Ðñ ˜W¨eÑ4€Oñ �w¡
¨=Ó 9ÀDÑI€IÙ˜)°"°¸|ÑL€Fñ ˜4¨$Ñ/€MÙ" 4°$Ñ7ÐÙ!'¨°tÑ!<ÐÙ˜t¨dÑ3ÐÙ!'¨°tÑ!<Ðñ $*¨%¸$Ñ#?Ð Ù  °Ñ6Ðá�U CÑ(€GÙ ¨sÑ3ÐÙ °4Ñ8ÐÙ! %°$Ñ7ÐÙ#¡F¨2£J¸Ñ>ÐÙ™ ›¨dÑ3€KÙ˜w°Ñ6ÐÙ  °%Ñ8ÐÙ  °%Ñ8ÐÙ˜w°Ñ3Ðñ % W°eÑ<ÐÙ"(¨¸4Ñ"@Ðñ  & g°uÑ=ÐÙ!'©¨s«¸dÑ!CÐÙ*0°À%Ñ*HÐ'ñ *0°ÀÑ)GÐ&á˜W¨eÑ4€OÙ‘f˜R“j¨4Ñ0€HÙ™6 "›:°Ñ5€MÙ  °Ñ5Ðá!¡&¨£*°tÑ<ÐÙ#¡F¨2£J¸Ñ>Ðá‘V˜B“Z¨Ñ2€GÙ˜¨Ñ-€KÙ# G°UÑ;Ðñ ‘&˜“* T°Ñ?XÑY€DÙ% g°uÑ=Ðñ ˜7¨EÑ2€MÙ™6 #›;°Ñ6€MÙ!¡&¨£+¸Ñ=ÐÙ! $°Ñ6Ðñ �y°Ñ
<€CÙ˜V°JÑ?€IÙ˜|¸IÑF€KÙ˜&°Ñ;€FÙ$ ZÀ	ÑJÐñ ™f S›k°DÑ9ÐÙ™f S›k°DÑ9ÐÙ‘v˜c“{¨TÑ2€IÙ™& ›+°Ñ5€Lñ ‘f˜S“k¨DÑ1€HÙ‘f˜S“k¨DÑ1€HÙ‘f˜S“k¨DÑ1ƒHrT   re   c                   óž  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      SS9r\" \" S	5      SS9r\" \" S
5      SS9r\" \" S	5      SS9r\" \5      r\" \SS9r\" \" S5      SS9r\" \SSS9r\" \\	" S5      SS9r\" \" S	5      SS9r\" \\	" S5      SS9r\" \S S9r\" S5      r\" S5      r\" S5      r\" S5      rSr g)ÚBerletiIdoszaki¨  u  Egy gÃ©p kihelyezÃ©sÃ©nek idÅ‘szaka a bÃ©rbeadÃ³ (a gÃ©p tÃ©nyleges, vÃ¡ltozatlan tulajdonosa/
nyilvÃ¡ntartÃ³ja) Ã©s egy bÃ©rlÅ‘ cÃ©g kÃ¶zÃ¶tt. A gÃ©p NEM kÃ¶ltÃ¶zik Ã¡t - a bÃ©rlÅ‘ cÃ©g felhasznÃ¡lÃ³i
a sajÃ¡t /lista listÃ¡jukban is lÃ¡tjÃ¡k, amÃ­g a bÃ©rlet aktÃ­v (vege == null).Úberleti_idoszakokTr=   r"   r   rC   rZ   r\   r¢   ÚBerbeadorE   Fr]   r   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚBerletiIdoszak.<lambda>Ç  rš   rT   re   rW   rc   r^   rG   N)!rH   rI   rJ   rK   rL   rM   r   r   rN   r   r!   Úberlo_company_idr   Úberlo_nev_kulsoÚberlo_cim_kulsoÚberlo_elerhetoseg_kulsor	   ÚkezdeteÚvegeÚuzemeltetes_felelosr   Ú
jovahagyvaÚberlo_site_idÚberlo_keszenleti_helyÚletrehozo_user_idr
   rž   r   rŸ   Ú	berlo_cegÚ
berlo_siteÚ	letrehozorS   rG   rT   rU   r  r  ¨  s  † ñXð (€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:Ó;€JÙ˜g¡z°.Ó'AÈDÑQÐñ ™V C›[°4Ñ8€OÙ™V C›[°4Ñ8€OÙ$¡V¨C£[¸4Ñ@ÐÙ�T‹l€GÙ�$ Ñ&€DÙ ¡¨£°ZÑ@Ðñ
 ˜¨¸Ñ>€Jñ ˜7¡J¨zÓ$:ÀTÑJ€MÙ"¡6¨#£;¸Ñ>ÐÙ˜w©
°:Ó(>ÈÑNÐÙ˜Ñ*LÑM€Já˜9Ó%€GÙ˜YÓ'€IÙ˜fÓ%€JÙ˜VÓ$ƒIrT   r  c                   óŠ   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      SS9r\" \
" S5      5      r\" S	SS
9rSrg)rf   iÏ  r€   Tr=   r   rB   r[   r\   rW   rd   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r   r   Ú	kategoriaÚertekr   r_   rS   rG   rT   rU   rf   rf   Ï  sP   † Ø"€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ‘v˜c“{¨$Ñ/€IÙ‘6˜#“;Ó€Eá
�y°Ñ
@ƒCrT   rf   c                   óò   • \ rS rSrSr\" \SSS9r\" \\" S5      SS9r	\" \
" S5      SS9r\" \SS9r\" \SS9r\" \
" S	5      SS9r\" \
" S	5      SS9r\" \
" S	5      SS9r\" \SS
9r\" \SS
9r\" SSS9rSrg)rg   iØ  Úmachine_type_configsTr=   r   FrC   r‘   rB   rE   rW   r�   rd   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r   r   rÞ   r   Úkotelezo_mezokÚrejtett_mezokÚegyedi_1_nevÚegyedi_2_nevÚegyedi_3_nevr   Úmsz16226_szuksegesÚkezeloi_munkahely_szuksegesr   r_   rS   rG   rT   rU   rg   rg   Ø  s®   † Ø*€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;ÀeÑL€JÙ‘f˜S“k¨EÑ2€Hñ ˜D¨4Ñ0€NÙ˜4¨$Ñ/€Mñ ™& ›+°Ñ5€LÙ™& ›+°Ñ5€LÙ™& ›+°Ñ5€Lñ   °Ñ7Ðñ
 #)¨¸%Ñ"@Ðá
�y°Ñ
;ƒCrT   rg   c                   ó�  • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \\" S5      5      r
\" \" S5      5      r\" \5      r\" \" S5      5      r\" \SS	9r\" \" S
5      SS	9r\" \SS	9r\" \SS	9r\" \SS9r\" \" S5      SS	9r\" \SS9r\" \SS	9r\" \\" S5      SS	9r\" \SS S9r\" SSS9r\" S5      r \" S5      r!Sr"g)rÖ   iò  ÚinspectionsTr=   r"   r   rB   rZ   rC   r\   FrE   r?   zberleti_idoszakok.idc                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚInspection.<lambda>  s   € ÄÇÂÌhÏlÉlÔA[rT   ©rD   rF   re   r	  rd   r^   r  rG   N)#rH   rI   rJ   rK   rM   r   r   rN   r   r!   r   r   r›   r	   ÚdatumÚeredmenyr   r�   Újegyzokonyv_pdf_pathÚreszletes_eredmenyekr   Úuzemora_a_vizsgalatkorr   Újegyzokonyv_szam_egyediÚjegyzokonyv_szamÚ
rendkivuliÚrendkivuli_indoklasÚberleti_idoszak_idr
   rž   r   rŸ   r�   Úberleti_idoszakrS   rG   rT   rU   rÖ   rÖ   ò  s  † Ø!€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:Ó;€JÙ�W™j¨Ó4Ó5€Gá™f S›kÓ*ÐÙ�4‹L€EÙ‘f˜S“kÓ"€HÙ˜ tÑ,€Já!¡&¨£+¸Ñ=ÐÙ! $°Ñ6Ðñ $ E°DÑ9ÐÙ$ W°eÑ<ÐÙ™f R›j°4Ñ8Ðñ ˜¨Ñ/€JÙ  °Ñ5Ðñ   ©Ð4JÓ)KÐVZÑ[Ðñ ˜¨4Ñ9[Ñ\€Já˜9°]ÑC€GÙ˜Ó€DÙ"Ð#3Ó4ƒOrT   rÖ   c                   óª   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \
" S5      5      r\" \S S	9r\" \SS
9r\" SSS9rSrg)r×   i   ÚfilesTr=   r"   r\   rB   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚFile.<lambda>&  ó   € ´8·<²<ÄÇÁÔ3MrT   rE   rC   re   r
  rd   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r!   r   Ú	file_pathÚ	file_typer
   Úuploaded_atr   r�   r   rŸ   rS   rG   rT   rU   r×   r×      si   † Ø€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:Ó;€JÙ‘v˜c“{Ó#€IÙ‘v˜c“{Ó#€IÙ˜Ñ+MÑN€Kñ ˜ tÑ,€Já˜9°XÑ>ƒGrT   r×   c                   óü   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      SSS9r
\" \" S	5      SS
9r\" \SS
9r\" \\	" S5      SS
9r\" \S S9r\" \\	" S5      SS
9r\" \SS S9r\" S5      r\" S\/S9r\" S\/S9rSrg)ÚMsz16226Dokumentumi/  uh  MSZ 16226 (GÃ©pi hajtÃ¡sÃº targonca Ã¼zemviteli dokumentuma) - gÃ©penkÃ©nt 1:1 rekord.
A legtÃ¶bb adat (checklist, telephely-tÃ¶rtÃ©net, javÃ­tÃ¡si naplÃ³, vizsgÃ¡lat-nyilvÃ¡ntartÃ¡s)
Ã©lÅ‘ben, a meglÃ©vÅ‘ File/Inspection/MaintenanceTicket/AuditLog rekordokbÃ³l szÃ¡molÃ³dik -
ez a tÃ¡bla csak azokat az adatokat tÃ¡rolja, amiknek sehol mÃ¡shol nincs otthonuk.Úmsz16226_dokumentumokTr=   r"   F©rA   rD   é   rC   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚMsz16226Dokumentum.<lambda>A  rš   rT   rE   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   rQ  C  s   € ÌÏÊÔU]×UaÑUaÔHbrT   )rD   Úonupdatere   r^   ©rb   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r!   r   Útargonca_tipusr   Úadatok_jsonr#  r
   rž   Úutolso_modosito_user_idÚutolso_modositasr   rŸ   r&  Úutolso_modositorS   rG   rT   rU   rL  rL  /  sÂ   † ñ[ð ,€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:À4ÐRWÑX€Jñ ™F 2›J°Ñ6€Nñ
 ˜¨Ñ-€Ká˜w©
°:Ó(>ÈÑNÐÙ˜Ñ*LÑM€JÙ$ W©j¸Ó.DÈtÑTÐÙ˜h°Ñ@bÑcÐá˜9Ó%€GÙ˜VÐ3DÐ2EÑF€IÙ" 6Ð9PÐ8QÑRƒOrT   rL  c                   óâ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      SS9r
\" \\	" S	5      SSS
9r\" \" S5      SS9r\" \" S5      SS9r\" \" S5      SS9r\" \SS9r\" S5      r\" S5      rSrg)ÚMszTelephelyMegjegyzesiJ  ub  Az MSZ 16226 Ã¼zemviteli dokumentum 3.5 szakaszÃ¡hoz (Ã¼zemeltetÃ©sre vonatkozÃ³ adatok) -
NEM egy Ã¶nÃ¡llÃ³ telephely-tÃ¶rtÃ©net naplÃ³, hanem a MÃ�R MEGLÃ‰VÅ�, generikus AuditLog
site_id-vÃ¡ltozÃ¡s bejegyzÃ©seket egÃ©szÃ­ti ki azokkal a szÃ¶veges mezÅ‘kkel, amiknek
mÃ¡shol nincs otthonuk (mÅ±kÃ¶dÃ©si terÃ¼let megnevezÃ©se, felelÅ‘s szervezet adatai).Úmsz_telephely_megjegyzesekTr=   r"   FrC   zaudit_logs.idrN  rZ   re   rØ   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r!   Úaudit_log_idr   Úmukodesi_terulet_megnevezeseÚfelelos_szervezet_nevÚfelelos_szervezet_vezetojer   r�   r   rŸ   Ú	audit_logrS   rG   rT   rU   r[  r[  J  s›   † ñ^ð 1€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:ÀUÑK€Jñ ˜'¡:¨oÓ#>ÀtÐVZÑ[€Lá#)©&°«+ÀÑ#EÐ Ù"¡6¨#£;¸Ñ>ÐÙ!'©¨s«¸dÑ!CÐÙ˜ tÑ,€Já˜9Ó%€GÙ˜ZÓ(ƒIrT   r[  c                   óö   • \ rS rSrSr\" \SSS9r\" \\" S5      SS9r	\" \\" S5      SS9r
\" \\" S5      SS9r\" \" S	5      5      r\" \5      r\" \5      r\" \S
 S9r\" SSS9r\" S5      r\" S5      rSrg)rØ   i^  Ú
audit_logsTr=   r"   rC   r   r   rZ   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚAuditLog.<lambda>g  ó   € ´·²¼h¿l¹lÔ1KrT   rE   re   r  rd   rW   r^   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r!   r   r   r   Ú
field_namer   Ú	old_valueÚ	new_valuer
   Ú	timestampr   rŸ   r_   r�   rS   rG   rT   rU   rØ   rØ   ^  sœ   † Ø €MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:ÀTÑJ€JÙ˜¡¨NÓ!;ÀdÑK€JÙ�W™j¨Ó4¸tÑD€GÙ™˜s›Ó$€JÙ�t“€IÙ�t“€IÙ�xÑ)KÑL€Iá˜9Ð5HÑI€GÙ
�yÓ
!€CÙ˜ÓƒDrT   rØ   c                   óš   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \
" S5      5      r\" \SS9r\" \SS	9rS
rg)ÚDailyCheckQuestionio  Údaily_check_questionsTr=   r   rZ   r?   rE   rC   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r   r   ÚszovegÚkovetkezmenyr   rR   r   Úgeptipus_listarS   rG   rT   rU   rl  rl  o  s\   † Ø+€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ‘F˜3“KÓ €FÙ™& ›*Ó%€LÙ�7 DÑ)€Eñ ˜D¨4Ñ0ƒNrT   rl  c                   ó@  • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \S S9r\" \5      r\" \
" S	5      SS
9r\" \
" S5      SS9r\" \
" S5      5      r\" \SS
9r\" \SS
9r\" \
" S5      SS
9r\" \SS
9r\" \
" S	5      SS
9r\" S5      rSrg)ÚMaintenanceTicketi{  Úmaintenance_ticketsTr=   r"   rB   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚMaintenanceTicket.<lambda>€  ó   € ´H·L²LÄÇÁÔ4NrT   rE   rZ   rC   r?   ÚNyitottre   rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r!   r   Úbejelento_nevr
   Únyitas_datumr   Úhiba_leirasaÚfenykep_pathr  Ú	sulyossagr	   ÚhataridoÚlezaras_datumÚlezaro_userÚjavitas_indoklasÚmunkalap_pathr   rŸ   rS   rG   rT   rU   rr  rr  {  sÉ   † Ø)€MÙ	� T°Ñ	6€BÙ˜¡¨MÓ!:Ó;€JÙ™6 #›;Ó'€MÙ˜(Ñ,NÑO€LÙ˜$“<€LÙ™& ›+°Ñ5€LÙ‘V˜B“Z¨Ñ3€GÙ‘v˜b“zÓ"€IÙ�d TÑ*€Hñ ˜8¨dÑ3€MÙ™ ›¨tÑ4€KÙ˜d¨TÑ2ÐÙ™6 #›;°Ñ6€Má˜9Ó%ƒGrT   rr  c                   óä   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \" S
5      SS	9r\" \\	" S5      SS	9r\" \SS9r\" S\
/S9r\" S\/S9rSrg)ÚKarbantartoCegi‘  uJ  A karbantartÃ³/felÃ¼lvizsgÃ¡lÃ³ cÃ©gek adatgazdÃ¡nkÃ©nti (Ã¼zemeltetÅ‘ cÃ©genkÃ©nti) katalÃ³gusa.
Ha a karbantartÃ³ maga is rendszerhasznÃ¡lÃ³, a tenant_company_id Ã¶sszekÃ¶ti a sajÃ¡t Company
rekordjÃ¡val - Ã­gy az Å‘ felhasznÃ¡lÃ³i a meglÃ©vÅ‘ allowed_companies mechanizmussal kaphatnak
hozzÃ¡fÃ©rÃ©st az Ã¼zemeltetÅ‘ adataihoz.Úkarbantarto_cegekTr=   r   rZ   r\   rC   rB   rE   rW   rT  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   ÚszekhelyÚokf_azonosito_jelÚtenant_company_idr   rR   r   r_   Ú
tenant_cegrS   rG   rT   rU   rƒ  rƒ  ‘  sš   † ñ1ð (€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ‘f˜S“k¨DÑ1€HÙ™v c›{°TÑ:ÐÙ˜w©
°>Ó(BÈTÑRÐÙ�7 DÑ)€Eá
�y°
¨|Ñ
<€CÙ˜iÐ7HÐ6IÑJƒJrT   rƒ  c                   ó´   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \5      r\" \SS9r\" \\	" S5      SS9r\" \S	 S
9r\" S5      r\" S5      rSrg)ÚKarbantartoSzerzodesi£  uò   A karbantartÃ³ cÃ©g Ã©s az Ã¼zemeltetÅ‘ kÃ¶zÃ¶tti szerzÅ‘dÃ©ses (megbÃ­zÃ¡si) idÅ‘szak - a bÃ©rleti
idÅ‘szak (BerletiIdoszak) mintÃ¡jÃ¡ra: tÃ¶bb, egymÃ¡st kÃ¶vetÅ‘ idÅ‘szak is rÃ¶gzÃ­thetÅ‘
history-val, nem csak egy Ã¶rÃ¶kÃ¶s be/ki kapcsolÃ³.Úkarbantarto_szerzodesekTr=   úkarbantarto_cegek.idrC   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚKarbantartoSzerzodes.<lambda>­  rš   rT   rE   rƒ  r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úkarbantarto_ceg_idr	   r  r  r#  r
   rž   r   Úkarbantarto_cegr&  rS   rG   rT   rU   rŠ  rŠ  £  sz   † ñ<ð .€MÙ	� T°Ñ	6€BÙ ©Ð4JÓ)KÓLÐÙ�T‹l€GÙ�$ Ñ&€DÙ˜w©
°:Ó(>ÈÑNÐÙ˜Ñ*LÑM€Já"Ð#3Ó4€OÙ˜VÓ$ƒIrT   rŠ  c                   ó¬   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \5      r\" \" S5      SS9r\" \" S	5      SS9r\" \SS9r\" S
5      rSrg)Ú
Szakvizsgai³  u”   FelhasznÃ¡lÃ³hoz kÃ¶tÃ¶tt tÅ±zvÃ©delmi szakvizsga-bizonyÃ­tvÃ¡ny (45/2011. BM rendelet 1. mellÃ©klete
szerinti kategÃ³riÃ¡k), lejÃ¡rat-figyelÃ©ssel.ÚszakvizsgakTr=   r   rB   rC   rZ   r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   Úkategoria_kodr   r®   Úkiallitor	   Úervenyesseg_datumar   r�   rS   rG   rT   rU   r’  r’  ³  sl   † ñ6à!€MÙ	� T°Ñ	6€BÙ�W™j¨Ó4Ó5€GÙ˜7“O€MÙ™v c›{°TÑ:ÐÙ‘f˜S“k¨DÑ1€HÙ ¨tÑ4Ðá˜ÓƒDrT   r’  c                   óž   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \SS
9r\" S5      rSrg)ÚTuzvedelmiTelephelyiÁ  uÕ   A tÅ±zvÃ©delmi modul sajÃ¡t, az emelÅ‘gÃ©pes Site-tÃ³l teljesen fÃ¼ggetlen telephely-nyilvÃ¡ntartÃ¡sa
(a kÃ©t modul kÃ¶zÃ¶tt nincs Ã¡tjÃ¡rÃ¡s - mÃ©g ha fizikailag ugyanaz a cÃ­m is, kÃ¼lÃ¶n-kÃ¼lÃ¶n rÃ¶gzÃ­tendÅ‘).Útuzvedelmi_telephelyekTr=   r   rZ   r\   rC   rE   rW   rG   N©rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   rm   r   rR   r   r_   rS   rG   rT   rU   r˜  r˜  Á  s`   † ñwà,€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€CÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   r˜  c                   óÆ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \SS9r\" \SS	9r\" \S
S	9r\" \" S5      SS	9r\" \S
S	9r\" SSS9rSrg)ÚTuzvedelmiEpuletiÎ  uý   A telephelyen belÃ¼li Ã©pÃ¼let szint - minden kÃ©szenlÃ©ti helynek Ã©pÃ¼lethez kell
tartoznia (a telephely_id a KeszenletiHely-en denormalizÃ¡ltan, az Ã©pÃ¼let alapjÃ¡n
marad kitÃ¶ltve, hogy a meglÃ©vÅ‘ telephely-szintÅ± lekÃ©rdezÃ©sek ne tÃ¶rjenek el).Útuzvedelmi_epuletekTr=   útuzvedelmi_telephelyek.idrZ   rC   rE   r   rO  Ú	FOLDSZINTr˜  Úepuletek©rk   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Útelephely_idr   rP   r   Úleirasr   rR   ÚpinceszintekÚfoldszint_valtozatÚemeletekr   r…   rS   rG   rT   rU   rœ  rœ  Î  s�   † ñ\ð *€MÙ	� T°Ñ	6€BÙ˜'¡:Ð.IÓ#JÓK€LÙ
‘˜“Ó
€CÙ�D 4Ñ(€FÙ�7 DÑ)€Eñ ˜'¨1Ñ-€LÙ¡ r£
°KÑ@ÐÙ�g qÑ)€HáÐ2¸JÑGƒIrT   rœ  c                   ó  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \\	" S5      SS	9r\" \" S
5      SS	9r\" \" S5      5      r\" \SS	9r\" \SS9r\" \SS9r\" S5      r\" S5      r\" S5      rSrg)ÚKeszenletiHelyiá  u¤   A stabil, telephelyhez (Ã©s Ã©pÃ¼lethez) kÃ¶tÃ¶tt kÃ©szenlÃ©ti pont - a rajta lÃ©vÅ‘
fizikai kÃ©szÃ¼lÃ©k karbantartÃ¡s/csere miatt cserÃ©lÅ‘dhet, a hely maga marad.Úkeszenleti_helyekTr=   r   rž  ztuzvedelmi_epuletek.idrC   r?   r\   FrE   rW   r˜  rœ  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r¢  r7   r   ÚszintÚhely_leirasr   Úalapterulet_m2r   ÚrobbanasveszelyesrR   r   r_   r…   ÚepuletrS   rG   rT   rU   r¨  r¨  á  sµ   † ñWà'€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ˜'¡:Ð.IÓ#JÓK€LÙ�w¡
Ð+CÓ DÈtÑT€IÙ‘6˜"“:¨Ñ-€EÙ™ ›Ó%€KÙ˜E¨DÑ1€NÙ˜w°Ñ6ÐÙ�7 DÑ)€Eá
�yÓ
!€CÙÐ2Ó3€IÙÐ,Ó-ƒFrT   r¨  c                   ó  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      SS9r\" \" S	5      SS9r\" \" S	5      SS9r\" \" S
5      SSS9r\" \" S5      SS9r\" \" S5      SS9r\" \" S5      SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" \" S5      SS9r\" \SS9r\" \\	" S5      SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r \" \\	" S5      SS9r!\"" S\
/S9r#\"" SS\/S9r$\"" S5      r%\"" S5      r&Sr'g)ÚTuzoltoKeszulekiô  u²   A fizikai tÅ±zoltÃ³ kÃ©szÃ¼lÃ©k - a jelenlegi_hely_id-n keresztÃ¼l kapcsolÃ³dik a stabil
kÃ©szenlÃ©ti ponthoz, de karbantartÃ¡s/csere miatt mÃ¡shova is kerÃ¼lhet, vagy raktÃ¡rba.ÚtuzoltokeszulekekTr=   r   úkeszenleti_helyek.idrC   rZ   rB   ©rD   r>   r?   r¢   FrE   rÐ   r   rŒ  rW   rT  r¨  Újelenlegi_keszulek)rk   rb   rƒ  r^   rG   N)(rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   Újelenlegi_hely_idr   rÚ   Ú	tipus_nevrÜ   Úgyartasi_szabvanyÚoltoanyag_tipusÚoe_ertekr   Útoltettomeg_kgr	   rä   r   Úgyartoi_ellenorzesÚgyartoi_ellenorzes_kezdeter  r   r#  Úutolso_alap_karbantartasÚutolso_kozep_karbantartasÚutolso_teljes_korbeÚnyp_ervenyesseg_datumar�  r   r_   Újelenlegi_helyr�  r&  rS   rG   rT   rU   r°  r°  ô  sˆ  † ñaà'€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ˜w©
Ð3IÓ(JÐUYÑZÐá‘F˜3“K¨$Ñ/€FÙ‘v˜c“{¨TÑ2€IÙ™˜s›¨d¸$Ñ?€JÙ™v b›z°DÑ9ÐÙ™V B›Z°$Ñ7€OÙ‘f˜R“j¨4Ñ0€HÙ˜E¨DÑ1€NÙ˜4¨$Ñ/€Má °Ñ7ÐÙ!'¨°tÑ!<Ðá‘V˜B“Z¨Ñ2€GÙ˜¨Ñ.€JÙ˜w©
°:Ó(>ÈÑNÐá% d°TÑ:ÐÙ & t°dÑ ;ÐÙ  °Ñ5ÐÙ# D°4Ñ8Ðá ©Ð4JÓ)KÐVZÑ[Ðá
�y°
¨|Ñ
<€CÙ!Ð"2Ð<PÐ`qÐ_rÑs€NÙ"Ð#3Ó4€OÙ˜VÓ$ƒIrT   r°  c                   ó    • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      5      r\" \S	 S
9r\" SSS9rSrg)ÚTuzvedelemFajli  u�   KÃ©szÃ¼lÃ©khez szabadon (nem csak ellenÅ‘rzÃ©s-rÃ¶gzÃ­tÃ©skor) csatolhatÃ³ fÃ©nykÃ©p/dokumentum -
a gÃ©pes modul File modelljÃ©nek tÅ±zvÃ©delmi megfelelÅ‘je.Útuzvedelem_fajlokTr=   útuzoltokeszulekek.idr\   rB   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚTuzvedelemFajl.<lambda>!  rG  rT   rE   r°  r
  r¡  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úkeszulek_idr   rH  rI  r
   rJ  r   ÚkeszulekrS   rG   rT   rU   rÃ  rÃ    sc   † ñCà'€MÙ	� T°Ñ	6€BÙ˜¡*Ð-CÓ"DÓE€KÙ‘v˜c“{Ó#€IÙ‘v˜c“{Ó#€IÙ˜Ñ+MÑN€KáÐ-°xÑ@ƒHrT   rÃ  c                   óú   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      SS9r
\" \" S5      5      r\" \" S5      5      r\" \" S	5      SS9r\" \" S	5      SS9r\" \" S
5      SS9r\" \SS9r\" \SS9r\" S5      rSrg)ÚTuzoltoKeszulekTipusi&  u8  BÅ‘vÃ­thetÅ‘ kÃ©szÃ¼lÃ©ktÃ­pus-katalÃ³gus a gyors felvitelhez (keresÅ‘ + automatikus
adatkitÃ¶ltÃ©s). A company_id=NULL sorok a globÃ¡lis, elÅ‘re feltÃ¶ltÃ¶tt katalÃ³gust
jelentik (fireg.hu gyÃ¡rtÃ³i mÅ±szaki adatai alapjÃ¡n), a kitÃ¶ltÃ¶tt company_id-jÃº sorok
egy adott cÃ©g sajÃ¡t, egyedi felvitelÅ± tÃ­pusai.Útuzoltokeszulek_tipusokTr=   r   rC   rZ   r?   r¢   rE   rW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rÚ   r¶  r¸  r·  r¹  r   rº  r   rR   r   r_   rS   rG   rT   rU   rË  rË  &  sž   † ñ:ð .€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;ÀdÑK€JÙ‘F˜3“KÓ €FÙ‘v˜c“{Ó#€IÙ™V B›Z°$Ñ7€OÙ™v b›z°DÑ9ÐÙ‘f˜R“j¨4Ñ0€HÙ˜E¨DÑ1€NÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   rË  c                   ó¦   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \5      r\" \SS9r\" S	5      r\" S
5      rSrg)ÚKeszulekTorteneti9  u–   Melyik kÃ©szÃ¼lÃ©k mikortÃ³l-meddig volt melyik kÃ©szenlÃ©ti helyen - audit-nyom a
karbantartÃ¡s miatti cserÃ©khez (vege=null -> jelenleg is ott van).Úkeszulek_tortenetTr=   r²  rÅ  rC   r¨  r°  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úkeszenleti_hely_idrÈ  r	   r  r  r   Úkeszenleti_helyrÉ  rS   rG   rT   rU   rÎ  rÎ  9  sk   † ñKà'€MÙ	� T°Ñ	6€BÙ ©Ð4JÓ)KÓLÐÙ˜¡*Ð-CÓ"DÓE€KÙ�T‹l€GÙ�$ Ñ&€Dá"Ð#3Ó4€OÙÐ-Ó.ƒHrT   rÎ  c                   ó  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \\	" S5      SS9r\" \5      r\" \SS9r\" \\	" S	5      SS9r\" \S
 S9r\" S\
/S9r\" S5      r\" S\/S9r\" S5      rSrg)ÚKeszulekKolcsonzesiG  uv  Egy karbantartÃ³ cÃ©g SAJÃ�T tulajdonÃº (a karbantarto_ceg tenant_company_id-jÃ¡hoz tartozÃ³)
tÅ±zoltÃ³ kÃ©szÃ¼lÃ©kÃ©nek kihelyezÃ©se egy Ã¼zemeltetÅ‘ kÃ©szenlÃ©ti helyÃ©hez, amÃ­g az Ã¼zemeltetÅ‘
sajÃ¡t kÃ©szÃ¼lÃ©ke szervizben (elszÃ¡llÃ­tva karbantartÃ¡sra) van - a bÃ©rleti idÅ‘szak
(BerletiIdoszak) mintÃ¡jÃ¡ra. A kÃ©szÃ¼lÃ©k NEM kerÃ¼l Ã¡t az Ã¼zemeltetÅ‘ tulajdonÃ¡ba.Úkeszulek_kolcsonzesekTr=   rÅ  r²  rC   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚKeszulekKolcsonzes.<lambda>T  rš   rT   rE   r°  rT  r¨  r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   rÈ  rÐ  Úeredeti_keszulek_idr	   r  r  r#  r
   rž   r   rÉ  rÑ  Úeredeti_keszulekr&  rS   rG   rT   rU   rÓ  rÓ  G  sÄ   † ñ`ð ,€MÙ	� T°Ñ	6€BÙ˜¡*Ð-CÓ"DÓE€KÙ ©Ð4JÓ)KÓLÐÙ  ©*Ð5KÓ*LÐW[Ñ\ÐÙ�T‹l€GÙ�$ Ñ&€DÙ˜w©
°:Ó(>ÈÑNÐÙ˜Ñ*LÑM€JáÐ-¸[¸MÑJ€HÙ"Ð#3Ó4€OÙ#Ð$5ÐEXÐDYÑZÐÙ˜VÓ$ƒIrT   rÓ  c                   ó–   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \5      r\" \" S5      5      r\" \5      r\" S5      rS	rg
)ÚElettartamHosszabbitasi\  u¡   OTSZ 265. Â§ (2): 25 kg feletti tÃ¶ltettÃ¶megÅ± kÃ©szÃ¼lÃ©k Ã©lettartama szakvÃ©lemÃ©ny
birtokÃ¡ban alkalmankÃ©nt 5 Ã©vvel hosszabbÃ­thatÃ³, legfeljebb kÃ©tszer.Úelettartam_hosszabbitasokTr=   rÅ  rZ   r°  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   rÈ  r	   Úszakvelemeny_datumar   Úszakerto_neveÚervenyes_meddigr   rÉ  rS   rG   rT   rU   rÚ  rÚ  \  sY   † ñQà/€MÙ	� T°Ñ	6€BÙ˜¡*Ð-CÓ"DÓE€KÙ  ›,ÐÙ™6 #›;Ó'€MÙ˜T“l€OáÐ-Ó.ƒHrT   rÚ  c                   ó�  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \5      r\" \SS9r\" \\	" S	5      SS9r\" \" S
5      SS9r\" \" S5      SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" \" S5      SS9r\" \\	" S5      SS9r\" \S S9r\" S5      r\" S5      r \" S5      r!Sr"g)ÚTuzvedelmiEllenorzesii  uŽ   A tÅ±zvÃ©delmi Ã¼zemeltetÃ©si naplÃ³ egy-egy bejegyzÃ©se: Ã¼zemeltetÅ‘i ellenÅ‘rzÃ©s vagy
karbantartÃ¡s (alap/kÃ¶zÃ©p/teljes kÃ¶rÅ±) esemÃ©ny.Útuzvedelmi_ellenorzesekTr=   rÅ  rO  rC   rŒ  rZ   rB   FrE   r\   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚTuzvedelmiEllenorzes.<lambda>  s   € ´·²¼X¿\¹\Ô0JrT   r°  rƒ  r^   rG   N)#rH   rI   rJ   rK   rL   rM   r   r   rN   r   rÈ  r   rÛ   r	   r8  Únegyedevr�  Ú
vegzo_neveÚszakvizsga_szamÚszakvizsga_ervenyessegr   Úis_egyben_ellenorzes_isr   Útapasztalt_hianyossagÚ
intezkedesr�   r{  Úrogzito_user_idr
   Úrogzitver   rÉ  r�  ÚrogzitorS   rG   rT   rU   rà  rà  i  s  † ñ<à-€MÙ	� T°Ñ	6€BÙ˜¡*Ð-CÓ"DÓE€KÙ‘6˜"“:Ó€EÙ�4‹L€EÙ�g¨Ñ-€Há ©Ð4JÓ)KÐVZÑ[ÐÙ™˜s›¨dÑ3€JÙ™V C›[°4Ñ8€OÙ# D°4Ñ8ÐÙ$ W°eÑ<Ðá" 4°$Ñ7ÐÙ˜ tÑ,€JÙ˜ tÑ,€JÙ™& ›+°Ñ5€Lá˜W¡j°Ó&<ÀtÑL€OÙ�hÑ(JÑK€HáÐ-Ó.€HÙ"Ð#3Ó4€OÙ˜6Ó"ƒGrT   rà  c                   óÎ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \5      r\" \SS9r\" \SS	9r\" \\	" S
5      SS	9r\" \SS9r\" \SS	9r\" S5      r\" S5      rSrg)ÚTuzvedelmiNaploi†  u›   Ã‰venkÃ©nti naplÃ³-idÅ‘szak lÃ©tesÃ­tmÃ©nyenkÃ©nt (site) - a 4 negyedÃ©ves ellenÅ‘rzÃ©s Ã©s az
esedÃ©kes karbantartÃ¡s meglÃ©te utÃ¡n az Admin lezÃ¡rhatja.Útuzvedelmi_naplokTr=   rž  FrE   rC   r   r˜  r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r¢  Úevr   Úlezarvar	   Úlezaras_datumaÚlezaro_user_idÚhianyosan_zarvar   Úhianyossag_indoklasr   r…   ÚlezarorS   rG   rT   rU   rï  rï  †  s‘   † ñDà'€MÙ	� T°Ñ	6€BÙ˜'¡:Ð.IÓ#JÓK€LÙ	�‹€BÙ�W eÑ,€GÙ˜D¨4Ñ0€NÙ˜G¡Z°
Ó%;ÀdÑK€Nñ
 ˜W¨eÑ4€OÙ  °Ñ5ÐáÐ2Ó3€IÙ˜&Ó!ƒFrT   rï  c                   óž   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \SS
9r\" S5      rSrg)Ú
EbkTeruleti�  u¤   A biztonsÃ¡gi koordinÃ¡tor cÃ©gÃ©nek megoszthatÃ³, projektek kÃ¶zÃ¶tt ÃºjrafelhasznÃ¡lhatÃ³
terÃ¼let-katalÃ³gusa (pl. egy nagyobb ipari park kÃ¼lÃ¶nbÃ¶zÅ‘ zÃ³nÃ¡i).Úebk_teruletekTr=   r   rZ   r\   rC   rE   rW   rG   Nrš  rG   rT   rU   rù  rù  �  s`   † ñPà#€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€CÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   rù  c                   óŒ   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \SS9r\" \SS9r\" S	S
S9rSrg)Ú	EbkEpuletiª  Úebk_epuletekTr=   r*   rZ   rC   rE   rù  r   r¡  rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r)   r   rP   r   r£  r   rR   r   ÚteruletrS   rG   rT   rU   rü  rü  ª  sY   † Ø"€MÙ	� T°Ñ	6€BÙ˜¡Ð,>Ó!?Ó@€JÙ
‘˜“Ó
€CÙ�D 4Ñ(€FÙ�7 DÑ)€Eá˜<°Ñ<ƒGrT   rü  c                   ó~   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \SS9r\" SS	S
9rSrg)ÚEbkSzintiµ  Úebk_szintekTr=   úebk_epuletek.idrB   rE   rü  Úszintekr¡  rG   N©rH   rI   rJ   rK   rM   r   r   rN   r   r7   r   rP   r   rR   r   r®  rS   rG   rT   rU   r   r   µ  sM   † Ø!€MÙ	� T°Ñ	6€BÙ�w¡
Ð+<Ó =Ó>€IÙ
‘˜“Ó
€CÙ�7 DÑ)€Eá˜+¨yÑ9ƒFrT   r   c                   óÒ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS9r\" \" S5      SS9r\" \" S5      SS9r\" \SS	9r\" S
5      rSrg)ÚEbkAlvallalkozoi¿  uU   CÃ©ges tÃ¶rzsadat - a projektek kÃ¶zÃ¶tt ÃºjrafelhasznÃ¡lhatÃ³ alvÃ¡llalkozÃ³i lista.Úebk_alvallalkozokTr=   r   rZ   rC   rE   rW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   Úfelelos_vezetoÚkapcsolattarto_nevÚkapcsolattarto_elerhetosegr   rR   r   r_   rS   rG   rT   rU   r  r  ¿  s   † Ù_Ø'€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ™F 3›K°$Ñ7€NÙ¡ s£°dÑ;ÐÙ!'©¨s«¸dÑ!CÐÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   r  c                   ó„   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \SS9r\" S	5      rS
rg)ÚEbkTevekenysegiÍ  u\   CÃ©ges szintÅ±, bÅ‘vÃ­thetÅ‘ tevÃ©kenysÃ©g-katalÃ³gus (pl. "Ã�llvÃ¡nyozÃ¡s", "TetÅ‘fedÃ©s").Úebk_tevekenysegekTr=   r   rZ   rE   rW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   r   rR   r   r_   rS   rG   rT   rU   r  r  Í  sM   † ÙfØ'€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   r  c                   óº   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \SS9r\" \" S	5      S
S9r\" \SS9r\" \SS9r\" S5      rSrg)ÚEbkEllenorzesiTeteliØ  uµ   CÃ©ges szintÅ± ellenÅ‘rzÃ©si tÃ©tel-sablon (4/2002. Korm. rendelet 4. mellÃ©klete alapjÃ¡n
Ã¡llÃ­thatÃ³ Ã¶ssze) - projektenkÃ©nt egyedileg ki/bekapcsolhatÃ³ (lÃ¡sd EbkProjektTetel).Úebk_ellenorzesi_tetelekTr=   r   r\   rE   r¢   ÚNAPIFrW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rn  r   ÚkotelezorÛ   rR   Úauto_engedely_osszesitor   r_   rS   rG   rT   rU   r  r  Ø  s{   † ñbà-€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ‘F˜3“KÓ €FÙ�g tÑ,€HÙ‘6˜"“: vÑ.€EÙ�7 DÑ)€Eñ % W°eÑ<Ðá
�yÓ
!ƒCrT   r  c                   óÒ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \" S5      SS	9r\" \" S5      SS	9r\" \SS
9r\" S5      rSrg)Ú	EbkUgyfeliì  u:  CÃ©ges tÃ¶rzsadat - az ÃºjrafelhasznÃ¡lhatÃ³ Ã¼gyfÃ©l (megbÃ­zÃ³) katalÃ³gus. Egy projekt
lÃ©trehozÃ¡sakor ebbÅ‘l vÃ¡lasztva a projekt a megrendelÅ‘_* mezÅ‘kbe egy pillanatnyi
mÃ¡solatot ("snapshot") kap, hogy az Ã¼gyfÃ©l kÃ©sÅ‘bbi adatvÃ¡ltozÃ¡sa ne Ã­rja Ã¡t
visszamenÅ‘leg a mÃ¡r lÃ©trehozott projektek adatait.Úebk_ugyfelekTr=   r   rZ   r\   rC   rE   rW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   rm   r	  r
  r   rR   r   r_   rS   rG   rT   rU   r  r  ì  sƒ   † ñ=ð #€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€CÙ¡ s£°dÑ;ÐÙ!'©¨s«¸dÑ!CÐÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   r  c                   ó   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      SS9r\" \" S	5      5      r\" \" S
5      SS9r\" \" S	5      SS9r\" \" S	5      SS9r\" \" S
5      SS9r\" \SS9r\" \SS9r\" \\	" S5      SS9r\" \S S9r\" \SS9r\" S5      r\" S5      r\" S5      r\" S\SS9r\" S\ SS9r!\" S\"SS9r#Sr$g)Ú
EbkProjektiý  u´   Egy kivitelezÃ©si munkahely (MegrendelÅ‘ szerinti projekt), amihez a koordinÃ¡tor
ellenÅ‘rzÃ©seket rÃ¶gzÃ­t. A vege mezÅ‘ kitÃ¶ltÃ©se zÃ¡rja le a projektet (aktÃ­v = vege is None).Úebk_projektekTr=   r   zebk_ugyfelek.idrC   rZ   r\   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚEbkProjekt.<lambda>  rš   rT   rE   rW   r^   r  rù  Ú	projektekri   Úebk_koordinalt_projektekrG   N)%rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r2   r   Úmegrendelo_nevÚmegrendelo_cimÚmegrendelo_kapcsolattarto_nevÚ%megrendelo_kapcsolattarto_elerhetosegÚkivitelezes_helysziner	   r  r  r#  r
   rž   r   rR   r   r_   r&  Úugyfelr&   Ú	teruletekr/   Úmegrendelo_felhasznalokr0   Úkoordinator_felhasznalokrS   rG   rT   rU   r  r  ý  s&  † ñjà#€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€Já�w¡
Ð+<Ó =ÈÑM€IÙ™F 3›KÓ(€NÙ™F 3›K°$Ñ7€NÙ$*©6°#«;ÀÑ$FÐ!Ù,2±6¸#³;ÈÑ,NÐ)Ù"¡6¨#£;¸Ñ>Ðá�T DÑ)€GÙ�$ Ñ&€Dá˜w©
°:Ó(>ÈÑNÐÙ˜Ñ*LÑM€JÙ�7 DÑ)€Eá
�yÓ
!€CÙ˜VÓ$€IÙ˜+Ó&€FÙ˜\Ð5JÐT_Ñ`€IÙ*¨6Ð=OÐYhÑiÐÙ+¨FÐ>WÐa{Ñ|ÓrT   r  c                   ó”   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" SS	S
9r\" S5      r\" S\S9rSrg)ÚEbkProjektAlvallalkozoi  u™   Egy alvÃ¡llalkozÃ³ adott projekthez rendelÃ©se - az ott vÃ©gzett tevÃ©kenysÃ©geket az
ebk_projekt_alvallalkozo_tevekenysegek kapcsolÃ³tÃ¡bla sorolja fel.Úebk_projekt_alvallalkozokTr=   r(   úebk_alvallalkozok.idr  Úprojekt_alvallalkozokr¡  r  r  )rj   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r'   Úalvallalkozo_idr   ÚprojektÚalvallalkozor+   ÚtevekenysegekrS   rG   rT   rU   r(  r(    se   † ñKà/€MÙ	� T°Ñ	6€BÙ˜¡Ð,>Ó!?Ó@€JÙ˜W¡jÐ1GÓ&HÓI€Oá˜<Ð1HÑI€GÙÐ 1Ó2€LÙ Ð!1Ð=cÑdƒMrT   r(  c                   ó”   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \SS9r\" S	S
S9r\" S5      rSrg)ÚEbkProjektTeteli'  u   Egy cÃ©ges ellenÅ‘rzÃ©si tÃ©tel adott projektre vonatkozÃ³ ki/bekapcsolÃ¡sa - alapÃ©rtelmezetten
minden aktÃ­v tÃ©tel bekerÃ¼l ide a projekt lÃ©trehozÃ¡sakor, de admin kikapcsolhatja azt, ami az
adott munkahelyen nem relevÃ¡ns (pl. nincs Ã¶ltÃ¶zÅ‘-igÃ©ny).Úebk_projekt_tetelekTr=   r(   úebk_ellenorzesi_tetelek.idrE   r  Úprojekt_tetelekr¡  r  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r'   Útetel_idr   rR   r   r-  ÚtetelrS   rG   rT   rU   r1  r1  '  se   † ñEð *€MÙ	� T°Ñ	6€BÙ˜¡Ð,>Ó!?Ó@€JÙ�g™zÐ*FÓGÓH€HÙ�7 DÑ)€Eá˜<Ð1BÑC€GÙÐ.Ó/ƒErT   r1  c                   ó`  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \\	" S5      SS	9r\" \\	" S
5      SS	9r\" \SS9r\" \5      r\" \\	" S5      SS	9r\" \SS9r\" \S S9r\" \" S5      SS	9r\" SSS9r\" S5      r\" S5      r\" S5      r\" S5      rSrg)ÚEbkEllenorzesi5  u|   Egy terepi bejÃ¡rÃ¡s (helyszÃ­ni ellenÅ‘rzÃ©s) egy adott projekt egy adott terÃ¼let/Ã©pÃ¼let/
szint helyszÃ­nÃ©n, egy napon.Úebk_ellenorzesekTr=   r(   r*   r  rC   úebk_szintek.idFrE   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚEbkEllenorzes.<lambda>F  rš   rT   rZ   r  Úellenorzesekr¡  rù  rü  r   r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r'   r)   r7   Úszint_idr   Úosszes_szintr	   r8  Úellenorzo_user_idÚmindenrendbenr
   rž   r   Úcelellenorzesr   r-  rþ  r®  rª  Ú	ellenorzorS   rG   rT   rU   r8  r8  5  sð   † ñ&à&€MÙ	� T°Ñ	6€BÙ˜¡Ð,>Ó!?Ó@€JÙ˜¡Ð,>Ó!?Ó@€JÙ�w¡
Ð+<Ó =ÈÑM€IÙ�g™zÐ*:Ó;ÀdÑK€Hñ ˜'¨5Ñ1€Lá�4‹L€EÙ˜w©
°:Ó(>ÈÑNÐÙ˜7¨EÑ2€MÙ˜Ñ*LÑM€Jñ
 ™6 #›;°Ñ6€Má˜<°Ñ@€GÙ˜<Ó(€GÙ˜+Ó&€FÙ˜Ó$€EÙ˜VÓ$ƒIrT   r8  c                   ó|  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \" S5      5      r\" \\	" S	5      SS
9r\" \\	" S5      SS
9r\" \\	" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \SS9r\" \" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \SS
9r\" \SS
9r \" \" S5      SS
9r!\"" SSS9r#\"" S5      r$\"" S5      r%\"" S5      r&\"" S5      r'Sr(g)ÚEbkEllenorzesTeteliT  uñ   Egy ellenÅ‘rzÃ©si tÃ©tel eredmÃ©nye egy adott bejÃ¡rÃ¡son belÃ¼l - ha szabÃ¡lytalansÃ¡g, a
rÃ©szletei (alvÃ¡llalkozÃ³, tevÃ©kenysÃ©g, munkavÃ¡llalÃ³, sÃºlyossÃ¡g, leÃ­rÃ¡s, fÃ©nykÃ©p) Ã©s az
elismerÃ©s/alÃ¡Ã­rÃ¡s is itt kerÃ¼l rÃ¶gzÃ­tÃ©sre.Úebk_ellenorzes_tetelekTr=   zebk_ellenorzesek.idr3  r¢   r*  rC   r.   r:  rZ   r\   rB   FrE   r8  Útetel_eredmenyekr¡  r  r  r  r   rG   N))rH   rI   rJ   rK   rL   rM   r   r   rN   r   r5   r5  r   r  r,  r-   r>  Úmunkavallalo_never|  r   r£  r{  Úmunkavegzesi_engedely_szamr   Úengedely_nelkulÚengedely_ceg_nevÚengedely_ceg_szekhelyÚengedely_felelos_vezetoÚengedely_helyi_vezetoÚengedely_megrendelo_neveÚengedely_tevekenysegÚ	elismerveÚnem_elismeres_indoklasÚalairas_pathr   Ú
ellenorzesr6  r.  Útevekenysegrª  rS   rG   rT   rU   rE  rE  T  s³  † ñ:ð -€MÙ	� T°Ñ	6€BÙ˜7¡JÐ/DÓ$EÓF€MÙ�g™zÐ*FÓGÓH€HÙ‘V˜B“ZÓ €Gá˜W¡jÐ1GÓ&HÐSWÑX€OÙ˜G¡ZÐ0FÓ%GÐRVÑW€Nñ �g™zÐ*:Ó;ÀdÑK€HÙ™v c›{°TÑ:ÐÙ‘v˜b“z¨DÑ1€IÙ�D 4Ñ(€FÙ™& ›+°Ñ5€Lá!'©¨s«¸dÑ!CÐñ ˜W¨eÑ4€Oñ ™f S›k°DÑ9ÐÙ"¡6¨#£;¸Ñ>ÐÙ$¡V¨C£[¸4Ñ@ÐÙ"¡6¨#£;¸Ñ>ÐÙ%¡f¨S£k¸DÑAÐÙ!¡&¨£+¸Ñ=Ðá�w¨Ñ.€IÙ# D°4Ñ8ÐÙ™& ›+°Ñ5€Lá˜oÐ7IÑJ€JÙÐ.Ó/€EÙÐ 1Ó2€LÙÐ/Ó0€KÙ˜Ó$ƒErT   rE  c                   óœ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \SS
9r\" SSS9rSrg)ÚVivuTelephelyi‡  uë   Egy MegrendelÅ‘ sajÃ¡t telephelye - SZIGORÃšAN egy MegrendelÅ‘hÃ¶z tartozik (1:N, nem
megosztott/ÃºjrafelhasznÃ¡lhatÃ³ katalÃ³gus), hogy egyik MegrendelÅ‘ telephelye se
lÃ¡tszÃ³dhasson/keveredhessen egy mÃ¡sik MegrendelÅ‘ adatai alatt.Úvivu_telephelyekTr=   r3   rZ   r\   rC   rE   Ú
VivuUgyfelÚtelephelyekr¡  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r2   r   rP   rm   r   rR   r   r#  rS   rG   rT   rU   rW  rW  ‡  se   † ñJð '€MÙ	� T°Ñ	6€BÙ�w¡
Ð+=Ó >Ó?€IÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€CÙ�7 DÑ)€Eá˜,°Ñ>ƒFrT   rW  c                   óŒ   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \SS9r\" \SS9r\" S	S
S9rSrg)Ú
VivuEpuleti•  Úvivu_epuletekTr=   úvivu_telephelyek.idrZ   rC   rE   rW  r   r¡  rG   N)rH   rI   rJ   rK   rM   r   r   rN   r   r¢  r   rP   r   r£  r   rR   r   r…   rS   rG   rT   rU   r\  r\  •  sY   † Ø#€MÙ	� T°Ñ	6€BÙ˜'¡:Ð.CÓ#DÓE€LÙ
‘˜“Ó
€CÙ�D 4Ñ(€FÙ�7 DÑ)€Eá˜_°jÑAƒIrT   r\  c                   ó~   • \ rS rSrSr\" \SSS9r\" \\" S5      5      r	\" \
" S5      5      r\" \SS9r\" SS	S
9rSrg)Ú	VivuSzinti   Úvivu_szintekTr=   r8   rB   rE   r\  r  r¡  rG   Nr  rG   rT   rU   r`  r`     sM   † Ø"€MÙ	� T°Ñ	6€BÙ�w¡
Ð+=Ó >Ó?€IÙ
‘˜“Ó
€CÙ�7 DÑ)€Eá˜,°	Ñ:ƒFrT   r`  c                   óâ   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \" S5      SS	9r\" \" S5      SS	9r\" \" S5      SS	9r\" \SS
9r\" S5      r\" S\SS9rSrg)rY  iª  u­   A VIVÃœ modul legfelsÅ‘, Ã¶nÃ¡llÃ³ egysÃ©ge: egy MegrendelÅ‘, akinek kÃ¶zvetlenÃ¼l (Projekt
kÃ¶ztes fogalom nÃ©lkÃ¼l) sajÃ¡t telephelyei vannak (l. VivuTelephely.ugyfel_id).Úvivu_ugyfelekTr=   r   rZ   r\   rC   rE   rW   r^   ri   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rP   rm   r	  r
  r   rR   r   r_   r1   r%  rS   rG   rT   rU   rY  rY  ª  s•   † ñYà#€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;Ó<€JÙ
‘˜“Ó
€CÙ
‘˜“ tÑ
,€CÙ¡ s£°dÑ;ÐÙ!'©¨s«¸dÑ!CÐÙ�7 DÑ)€Eá
�yÓ
!€Cñ +¨6Ð=OÐYhÑiÓrT   rY  c                   óª   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      SS9r
\" \" S5      5      r\" \SS	9r\" \" S
5      SS	9r\" \SS	9r\" S5      rSrg)ÚVivuEllenorzesiTeteli¼  u�  CÃ©ges szintÅ± ellenÅ‘rzÃ©si tÃ©tel-sablon - nincs per-MegrendelÅ‘ be/kikapcsolÃ¡s, minden
aktÃ­v tÃ©tel mindig Ã©rvÃ©nyes mindenhol. A tipus dÃ¶nti el, melyik ellenÅ‘rzÃ©s-fajtÃ¡nÃ¡l
(helyszÃ­ni bejÃ¡rÃ¡s vagy dokumentÃ¡ciÃ³-felÃ¼lvizsgÃ¡lat) jelenik meg - a kettÅ‘ KÃœLÃ–N
bejÃ¡rÃ¡s-tÃ­pus, nem egy bejÃ¡rÃ¡son belÃ¼li opcionÃ¡lis kiegÃ©szÃ­tÃ©s (ellentÃ©tben az EBK
napi/Ã¡tfogÃ³ bontÃ¡sÃ¡val).Úvivu_ellenorzesi_tetelekTr=   r   rC   r\   rE   r¢   ÚBEJARASrW   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rn  r   r  rÛ   rR   r   r_   rS   rG   rT   rU   re  re  ¼  so   † ñ$ð
 /€MÙ	� T°Ñ	6€BÙ˜¡¨NÓ!;ÀdÑK€JÙ‘F˜3“KÓ €FÙ�g tÑ,€HÙ‘6˜"“: yÑ1€EÙ�7 DÑ)€Eá
�yÓ
!ƒCrT   re  c                   óø   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \5      r\" \\	" S5      SS	9r\" \S
S9r\" \S S9r\" \" S5      SS	9r\" SSS9r\" S\SS9r\" S5      rSrg)ÚVivuEllenorzesiÍ  u•  Egy terepi bejÃ¡rÃ¡s VAGY dokumentÃ¡ciÃ³-felÃ¼lvizsgÃ¡lat egy adott MegrendelÅ‘ egy adott
telephelyÃ©n, egy napon. NINCS egyetlen Ã©pÃ¼let/szint mezÅ‘ - a "minden rendben" tÃ©telekhez
tartozÃ³, Ã¶sszesÃ­tÅ‘ "mely Ã©pÃ¼lete(ke)t Ã©rintette" lista az `epuletek` M:N relÃ¡ciÃ³ban van,
a konkrÃ©t szabÃ¡lytalansÃ¡gok pedig sajÃ¡t, egyedi Ã©pÃ¼let+szint pÃ¡rost kapnak
(VivuEllenorzesTetel.epulet_id/szint_id).Úvivu_ellenorzesekTr=   r^  r¢   r   rC   FrE   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚVivuEllenorzes.<lambda>Þ  rš   rT   rZ   rW  r=  r¡  r\  Úvivu_ellenorzesek_erintveri   r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r¢  r   rÛ   r	   r8  r@  r   rA  r
   rž   rB  r   r…   r4   r   rC  rS   rG   rT   rU   ri  ri  Í  s¬   † ñ1ð
 (€MÙ	� T°Ñ	6€BÙ˜'¡:Ð.CÓ#DÓE€Lñ ‘6˜"“:Ó€Eá�4‹L€EÙ˜w©
°:Ó(>ÈÑNÐÙ˜7¨EÑ2€MÙ˜Ñ*LÑM€Jñ
 ™6 #›;°Ñ6€Má˜_°nÑE€IÙ˜LÐ4LÐVqÑr€HÙ˜VÓ$ƒIrT   ri  c                   ót  • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \\	" S5      5      r\" \" S5      5      r\" \\	" S	5      SS
9r\" \\	" S5      SS
9r\" \" S5      SS
9r\" \" S5      SS
9r\" \SS
9r\" \SS9r\" \SS9r\" \SS9r\" \SS9r\" SSS9r\" S5      r\" S5      r\" S5      rSrg)ÚVivuEllenorzesTeteliê  uœ  Egy ellenÅ‘rzÃ©si tÃ©tel eredmÃ©nye egy adott bejÃ¡rÃ¡son/dokumentÃ¡ciÃ³-felÃ¼lvizsgÃ¡laton belÃ¼l -
ha szabÃ¡lytalansÃ¡g, a rÃ©szletei (sÃºlyossÃ¡g, leÃ­rÃ¡s) itt kerÃ¼lnek rÃ¶gzÃ­tÃ©sre. A fÃ©nykÃ©pek
KÃœLÃ–N tÃ¡blÃ¡ban (VivuTetelFenykep) tÃ¡rolÃ³dnak, mert utÃ³lag is, tetszÅ‘leges szÃ¡mban
csatolhatÃ³k (a helyszÃ­nen gyakran nem engedik a fÃ©nykÃ©pezÃ©st, a kÃ©pek csak kÃ©sÅ‘bb, mÃ¡s
csatornÃ¡n Ã©rkeznek).Úvivu_ellenorzes_tetelekTr=   r6   zvivu_ellenorzesi_tetelek.idr¢   r8   rC   zvivu_szintek.idr‘   FrE   ri  rG  r¡  re  r\  r`  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r5   r5  r   r  r7   r>  Úhelyisegr|  r   r£  r   Úszakterulet_iparbiztonsagiÚszakterulet_tuzvedelmiÚszakterulet_munkavedelmiÚszakterulet_kornyezetvedelmir   rT  r6  r®  rª  rS   rG   rT   rU   ro  ro  ê  s  † ñð
 .€MÙ	� T°Ñ	6€BÙ˜7¡JÐ/EÓ$FÓG€MÙ�g™zÐ*GÓHÓI€HÙ‘V˜B“ZÓ €Gñ
 �w¡
Ð+=Ó >ÈÑN€IÙ�g™zÐ*;Ó<ÀtÑL€HÙ‘f˜S“k¨DÑ1€HÙ‘v˜b“z¨DÑ1€IÙ�D 4Ñ(€Fñ
 "(¨¸Ñ!?ÐÙ# G°UÑ;ÐÙ% g°uÑ=ÐÙ#)¨'¸5Ñ#AÐ áÐ.Ð8JÑK€JÙÐ/Ó0€EÙ˜,Ó'€FÙ˜Ó%ƒErT   ro  c                   ó°   • \ rS rSrSrSr\" \SSS9r\" \\	" S5      5      r
\" \" S5      5      r\" \S S	9r\" \\	" S
5      SS9r\" SSS9r\" S5      rSrg)ÚVivuTetelFenykepi  uí   Egy VivuEllenorzesTetel-hez (jellemzÅ‘en szabÃ¡lytalansÃ¡ghoz) tartozÃ³ fÃ©nykÃ©p - egy
tÃ©telnek 0..N fÃ©nykÃ©pe lehet, Ã©s bÃ¡rmikor, akÃ¡r napokkal a bejÃ¡rÃ¡s utÃ¡n is bÅ‘vÃ­thetÅ‘
(VIVU vagy Admin tÃ¶ltheti fel, l. routers/vivu.py).Úvivu_tetel_fenykepekTr=   zvivu_ellenorzes_tetelek.idr\   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚVivuTetelFenykep.<lambda>  s   € ´x·|²|ÄHÇLÁLÔ7QrT   rE   r   rC   ro  Ú	fenykepekr¡  r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r5  r   rH  r
   Úfeltoltve_datumÚfeltolto_user_idr   r6  ÚfeltoltorS   rG   rT   rU   rw  rw    st   † ñ<ð +€MÙ	� T°Ñ	6€BÙ�g™zÐ*FÓGÓH€HÙ‘v˜c“{Ó#€IÙ˜XÑ/QÑR€OÙ˜g¡z°*Ó'=ÈÑMÐáÐ.¸ÑD€EÙ˜FÓ#ƒHrT   rw  c                   ó¢   • \ rS rSrSrSr\" \SSS9r\" \	" S5      SSSS9r
\" \SS	9r\" \SS
9r\" \S S
9r\" \\" S5      SS	9r\" S5      rSrg)ÚRendszerBeallitasi  uã  GLOBÃ�LIS (nem cÃ©ghez kÃ¶tÃ¶tt) rendszerbeÃ¡llÃ­tÃ¡sok kulcs-Ã©rtÃ©k tÃ¡rolÃ³ja (2026-10-04).

MIÃ‰RT NEM A MEGLÃ‰VÅ� `Dictionary` TÃ�BLA?
    A Dictionary minden sora egy CÃ‰GHEZ (company_id) tartozik - cÃ©genkÃ©nti kapcsolÃ³kra valÃ³
    (pl. EmailRiportGyakorisag). Az itt tÃ¡rolt Ã©rtÃ©kek viszont az EGÃ‰SZ rendszerre vonatkoznak
    (pl. az egyetlen kÃ¶zÃ¶s SMTP-fiÃ³k), Ã©s kizÃ¡rÃ³lag a valÃ³di rendszeradminisztrÃ¡tor
    (security.is_rendszeradminisztrator) lÃ¡thatja/Ã­rhatja Å‘ket. A kÃ©t fogalmat szÃ¡ndÃ©kosan
    kÃ¼lÃ¶n tÃ¡blÃ¡ban tartjuk, hogy egy cÃ©ges admin vÃ©letlenÃ¼l se Ã©rhessen hozzÃ¡.

OSZLOPOK:
    kulcs       - a beÃ¡llÃ­tÃ¡s neve, egyedi (pl. "smtp_server"); a lehetsÃ©ges kulcsok listÃ¡ja a
                  email_beallitasok.py-ban van (nem szabad ide, a DB-be "szabadon" felvenni).
    ertek       - a beÃ¡llÃ­tÃ¡s Ã©rtÃ©ke szÃ¶vegkÃ©nt. Ha `titkositott` igaz, ez a titkosito_utils.py
                  Ã¡ltal titkosÃ­tott szÃ¶veg (NEM olvashatÃ³ nyers jelszÃ³).
    titkositott - igaz, ha az `ertek` titkosÃ­tva van (pl. smtp_jelszo).
    modositva_at / modosito_user_id - ki Ã©s mikor mÃ³dosÃ­totta utoljÃ¡ra (az Ã©rtÃ©k vÃ¡ltozÃ¡sÃ¡t
                  a JogosultsÃ¡gi naplÃ³ (AuditLog) is rÃ¶gzÃ­ti, de a jelszÃ³ Ã©rtÃ©kÃ©t SOHA nem).

Ãšj tÃ¡bla, ezÃ©rt a main.py init_db()-ban lÃ©vÅ‘ create_all() indulÃ¡skor automatikusan lÃ©trehozza -
kÃ¼lÃ¶n migrÃ¡ciÃ³s szkript a TÃ�BLÃ�HOZ nem kell (csak az opcionÃ¡lis .env->DB Ã¡tÃ¼ltetÃ©shez, l.
migracio_smtp_env_to_db.py).
Úrendszer_beallitasokTr=   rB   F)rA   r>   rD   rC   rE   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚRendszerBeallitas.<lambda>8  rv  rT   r   r^   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úkulcsr   r)  r   Útitkositottr
   Úmodositva_atr   Úmodosito_user_idr   ÚmodositorS   rG   rT   rU   r€  r€    ss   † ñð, +€MÙ	� T°Ñ	6€BÙ‘6˜#“; t°4À%ÑH€EÙ�4 $Ñ'€EÙ˜¨%Ñ0€KÙ˜(Ñ,NÑO€LÙ˜g¡z°*Ó'=ÈÑMÐá˜FÓ#ƒHrT   r€  c                   ór  • \ rS rSrSrSr\" \SSS9r\" \	" S5      SS9r
\" \	" S	5      SS9r\" \" 5       R                  \" 5       S
5      SS9r\" \	" S5      SS9r\" \SS9r\" \	" S5      SSS9r\" \SS9r\" \SS9r\" \	" S	5      SS9r\" \	" S5      SS9r\" \\" S5      SS9r\" \S S9r\" \SSS9rSrg)ÚEmailKimenoi>  uª  KIMENÅ� LEVELEK SORA (outbox) - 2026-10-04, e-mail rendszer B szelet.

MIÃ‰RT KELL?
    KorÃ¡bban a rendszer a levelet azonnal, a kÃ©rÃ©s hÃ¡ttÃ©rszÃ¡lÃ¡n kÃ¼ldte el: ha az SMTP-szerver
    Ã©ppen nem volt elÃ©rhetÅ‘, a levÃ©l Ã¶rÃ¶kre elveszett, Ã©s semmi nem korlÃ¡tozta, hÃ¡ny levÃ©l megy ki
    egy Ã³ra alatt (egy hiba-Ã¡radat a feladÃ³-cÃ­met spam-listÃ¡ra vihette). MostantÃ³l minden levÃ©l
    ELÅ�SZÃ–R ebbe a tÃ¡blÃ¡ba kerÃ¼l (email_sor.sorba_allit), Ã©s egy percenkÃ©nt futÃ³ Ã¼temezett
    feladat (email_sor.kiurites) kÃ¼ldi ki Å‘ket - a rendszeradmin Ã¡ltal beÃ¡llÃ­tott Ã³rÃ¡nkÃ©nti/napi
    korlÃ¡tig, hiba esetÃ©n nÃ¶vekvÅ‘ vÃ¡rakozÃ¡ssal ÃºjraprÃ³bÃ¡lva.

EGY SOR = EGY CÃ�MZETT. (Ã�gy egy hibÃ¡s cÃ­m nem akadÃ¡lyoz mÃ¡sokat, Ã©s a cÃ­mzettek nem lÃ¡tjÃ¡k
egymÃ¡s e-mail cÃ­mÃ©t - a korÃ¡bbi kÃ¶zÃ¶s "To:" mezÅ‘ ezt nem tudta.)

OSZLOPOK:
    cimzett            - a cÃ­mzett e-mail cÃ­me.
    targy / torzs_html - a kÃ©sz levÃ©l tÃ¡rgya Ã©s HTML tÃ¶rzse (a tÃ¶rzsben a vÃ¡ltozÃ³ adatok
                         html.escape-pelve vannak - l. email_utils.py).
    kategoria          - "riasztas" | "napi_riport" | "rendszer" (a kÃ©sÅ‘bbi feliratkozÃ¡s-kezelÃ©s
                         Ã©s a szÅ±rÃ©s alapja).
    prioritas          - 0 = sÃ¼rgÅ‘s (kritikus riasztÃ¡s), 1 = normÃ¡l, 2 = alacsony (napi riport).
                         A kiÃ¼rÃ­tÅ‘ prioritÃ¡s, majd beÃ©rkezÃ©si sorrendben kÃ¼ld.
    allapot            - "varakozik" | "kuldes_alatt" | "elkuldve" | "szimulalt" | "hibas" | "lejart"
                         ("szimulalt": nincs SMTP beÃ¡llÃ­tva, a levelet csak a konzolra Ã­rtuk ki).
    probalkozasok      - eddigi sikertelen prÃ³bÃ¡lkozÃ¡sok szÃ¡ma; a maximum utÃ¡n "hibas".
    kovetkezo_proba_at - ennÃ©l korÃ¡bban nem prÃ³bÃ¡ljuk Ãºjra (UTC).
    utolso_hiba        - a legutÃ³bbi hiba rÃ¶vid szÃ¶vege (jelszÃ³t nem tartalmaz).
    dedup_kulcs        - riasztÃ¡soknÃ¡l az ismÃ©tlÃ©s-szÅ±rÃ©s kulcsa; ha a levÃ©l vÃ©gleg "hibas" lesz, az
                         ehhez tartozÃ³ Ã¡llapotbejegyzÃ©s tÃ¶rlÅ‘dik (hogy a hiba Ãºjra jelezhetÅ‘ legyen).
    company_id         - melyik cÃ©ghez tartozik (nem kÃ¶telezÅ‘; Ã¡ttekintÃ©shez).
    letrehozva_at / elkuldve_at - UTC idÅ‘pontok.
Úemail_kimenoTr=   rZ   FrC   r\   Úmysqlr?   ÚriasztasrE   é   r¢   Ú	varakozik)rF   r>   r   é¾   r   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚEmailKimeno.<lambda>l  s   € ´X·\²\Ä(Ç,Á,Ô5OrT   r³  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   ÚcimzettÚtargyr   Úwith_variantr   Ú
torzs_htmlr(  Ú	prioritasÚallapotÚprobalkozasokr
   Úkovetkezo_proba_atÚutolso_hibaÚdedup_kulcsr   r   Úletrehozva_atÚelkuldve_atrS   rG   rT   rU   rŠ  rŠ  >  sî   † ñð> #€MÙ	� T°Ñ	6€BÙ‘V˜C“[¨5Ñ1€GÙ‘6˜#“;¨Ñ/€Eá™›×+Ñ+©J«L¸'ÓBÈUÑS€JÙ‘v˜b“z¨:Ñ6€IÙ�w¨Ñ*€IÙ‘V˜B“Z¨¸DÑA€GÙ˜7¨AÑ.€MÙ °4Ñ8ÐÙ™ ›¨tÑ4€KÙ™ ›¨tÑ4€KÙ˜¡¨NÓ!;ÀdÑK€JÙ˜8Ñ-OÑP€MÙ˜¨D¸Ñ=ƒKrT   rŠ  c                   ó‚   • \ rS rSrSrSr\" \SSS9r\" \	" S5      SS9r
\" \SSS	9r\" \SS9r\" \SS9r\" S
SS94rSrg)ÚEmailErtesitesAllapotip  u#  ISMÃ‰TLÅ�DÅ� HIBÃ�K SZÅ°RÃ‰SE - mikor jeleztÃ¼nk utoljÃ¡ra egy adott hibÃ¡t (2026-10-04, B szelet).

A kÃ­vÃ¡nt mÅ±kÃ¶dÃ©s: ha egy hiba (pl. egy gÃ©p lejÃ¡rt vizsgÃ¡lata) ma is, holnap is, azutÃ¡n is
fennÃ¡ll, a rendszer CSAK AZ ELSÅ� alkalommal kÃ¼ld rÃ³la levelet, Ã©s csak X nap (alapbÃ³l 7)
elteltÃ©vel emlÃ©keztet Ãºjra, ha a hiba mÃ©g mindig fennÃ¡ll.

EGY SOR = EGY (cÃ©g, hiba) PÃ�R:
    kulcs                - a hiba azonosÃ­tÃ³ja, stabil szÃ¶veg (pl. "riport:12:gep:34:FÅ‘vizsgÃ¡lat:lejart:2026-09-01"
                           vagy "riasztas:34:K:3fa9..."). Ugyanaz a hiba MINDIG ugyanazt a kulcsot adja.
    utolso_kikuldes_nap  - melyik napon (helyi dÃ¡tum) kerÃ¼lt utoljÃ¡ra levÃ©lbe. Nap-alapÃº (nem
                           Ã³ra-alapÃº) Ã¶sszehasonlÃ­tÃ¡s: egy heti riportnÃ¡l a pontosan 7 nappal
                           korÃ¡bbi 06:00:05-Ã¶s kÃ¼ldÃ©s ne tiltsa le a ma 06:00:00-s futÃ¡st.
    utoljara_latva_nap   - melyik napon lÃ¡ttuk utoljÃ¡ra fennÃ¡llni (csak a napi riport tÃ¶lti ki;
                           amelyik tÃ©tel mÃ¡r nem szerepel, az megoldÃ³dott -> a sora tÃ¶rlÅ‘dik,
                           Ã­gy ha kÃ©sÅ‘bb Ãºjra elÅ‘fordul, ismÃ©t "Ãºj hiba").
A kulcs egyedi (UniqueConstraint): pÃ¡rhuzamos folyamatok ugyanazt a hibÃ¡t nem tudjÃ¡k kÃ©tszer
"elsÅ‘kÃ©nt" bejegyezni.
Úemail_ertesites_allapotTr=   r�  FrC   r³  r„  Ú uq_email_ertesites_allapot_kulcs©ÚnamerG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r„  r   r	   Úutolso_kikuldes_napÚutoljara_latva_napr   Ú__table_args__rS   rG   rT   rU   r   r   p  sd   † ñð$ .€MÙ	� T°Ñ	6€BÙ‘6˜#“;¨Ñ/€EÙ˜¨$°dÑ;€JÙ  °Ñ6ÐÙ ¨tÑ4ÐÙ& wÐ5WÑXÐZƒNrT   r   c                   ó‚   • \ rS rSrSrSr\" \SSS9r\" \	" S5      SS9r
\" \	" S5      SS9r\" \S	 S
9r\" SSSS94rSrg)ÚUtemezettFutasiŒ  uæ  EGYSZERI FUTÃ�S BIZTOSÃ�TÃ�SA az Ã¼temezett feladatoknÃ¡l (2026-10-04, B szelet).

PROBLÃ‰MA: az Ã©les szerver 3 gunicorn workerrel fut, Ã©s a main.py minden workerben elindÃ­tja a
sajÃ¡t APScheduler-Ã©t - Ã­gy a napi riport / ellenÅ‘rzÃ©sek akÃ¡r 3-szor is lefuthattak (3x annyi levÃ©l).
MEGOLDÃ�S: minden futÃ¡s elÅ‘tt a feladat megprÃ³bÃ¡l beszÃºrni egy (feladat, kulcs) sort - pl.
("napi_riport", "2026-10-05"). A tÃ¡bla (feladat, kulcs) pÃ¡rja egyedi, ezÃ©rt az adatbÃ¡zis
pontosan EGY workernek engedi a beszÃºrÃ¡st; a tÃ¶bbi IntegrityError-t kap, Ã©s kihagyja a futÃ¡st.
Nincs szÃ¼ksÃ©g kÃ¼lsÅ‘ zÃ¡rra (fÃ¡jl, Redis), Ã©s a worker Ã¶sszeomlÃ¡sa sem akaszt meg semmit.
A rÃ©gi sorok az utemezo_utils.takaritas() hÃ­vÃ¡ssal tÃ¶rlÅ‘dnek.
Úutemezett_futasokTr=   r?   FrC   c                  óJ   • [         R                  " [        R                  5      $ r”   r•   rG   rT   rU   r˜   ÚUtemezettFutas.<lambda>›  rf  rT   rE   Úfeladatr„  Ú uq_utemezett_futas_feladat_kulcsr£  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r­  r„  r
   Ú	futott_atr   r§  rS   rG   rT   rU   r©  r©  Œ  s[   † ñ	ð (€MÙ	� T°Ñ	6€BÙ‘V˜B“Z¨%Ñ0€GÙ‘6˜"“:¨Ñ.€EÙ�xÑ)KÑL€IÙ& y°'Ð@bÑcÐeƒNrT   r©  c                   ót   • \ rS rSrSrSr\" \SSS9r\" \	" S5      SSS9r
\" \	" S	5      SSS9r\" \SSS9rS
rg)ÚLoginKiserleti¢  uá  Egy SIKERTELEN bejelentkezÃ©si kÃ­sÃ©rlet. Egy kÃ­sÃ©rlet = egy sor.

MIÃ‰RT AZ ADATBÃ�ZISBAN? RÃ©gen a szÃ¡mlÃ¡lÃ³ a folyamat memÃ³riÃ¡jÃ¡ban Ã©lt (security.py), Ã­gy a 3
gunicorn worker kÃ¼lÃ¶n-kÃ¼lÃ¶n szÃ¡molt (a valÃ³di hatÃ¡r akÃ¡r 3x annyi volt), ÃºjraindÃ­tÃ¡skor pedig
nullÃ¡zÃ³dott. Az adatbÃ¡zisban minden worker ugyanazt lÃ¡tja.
A szÃ¡mlÃ¡lÃ¡s: hÃ¡ny sor van az adott IP-hez / e-mailhez az elmÃºlt 5 percben (login_vedelem.py).
A rÃ©gi sorokat a napi takarÃ­tÃ¡s tÃ¶rli.Úlogin_kiserletekTr=   r¤   F)r>   rD   r�  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úipr¨   r
   ÚidopontrS   rG   rT   rU   r±  r±  ¢  sN   † ñ2ð '€MÙ	� T°Ñ	6€BÙ	‘�r“
 $°Ñ	7€BÙ‘6˜#“; d°UÑ;€EÙ�X T°EÑ:ƒGrT   r±  c                   ó°  • \ rS rSrSrSr\" \SSS9r\" \	" S5      SS9r
\" \	" S	5      SS9r\" \SS9r\" \SS9r\" \SSS
9r\" \SSS
9r\" \	" S5      5      r\" \\" SSS9SS9r\" \\" SSS9SS9r\" \SSS
9r\" \5      r\" \	" S5      5      r\" \SS9r\" \SS9r\" \\" SSS9SS9r\" \	" S5      SSS9r\" S\/S9r\" S\/S9r \!" SSS5      4r"Sr#g)ÚLoginTiltasi±  ué  Egy bejelentkezÃ©si TILTÃ�S (egy IP-re vagy egy fiÃ³kra/e-mailre).

tipus       - 'ip' vagy 'email'
azonosito   - az IP-cÃ­m, illetve a kisbetÅ±sÃ­tett e-mail cÃ­m
lejar_at    - meddig tart; NULL = VÃ‰GLEGES, amÃ­g a rendszeradmin fel nem oldja
valos       - igaz, ha VALÃ“S fiÃ³krÃ³l van szÃ³ (az e-mail lÃ©tezÅ‘ felhasznÃ¡lÃ³Ã©, vagy az IP-rÅ‘l
              lÃ©tezÅ‘ fiÃ³kot prÃ³bÃ¡ltak). CSAK a valÃ³s tiltÃ¡srÃ³l megy Ã©rtesÃ­tÅ‘ levÃ©l.
erintett    - IP-tiltÃ¡snÃ¡l: a valÃ³s fiÃ³kok e-mail cÃ­mei, amelyeket arrÃ³l az IP-rÅ‘l prÃ³bÃ¡ltak
ertesites   - 'elkuldve' | 'korlat' (tÃºl sok Ã©rtesÃ­tÅ‘ volt az Ã³rÃ¡ban) | 'nincs_valos' | 'nincs_cimzett' | 'hiba'
feloldva_at - ha a rendszeradmin kÃ©zzel feloldotta (a lejÃ¡rat nem "feloldÃ¡s")
Úlogin_tiltasokTr=   rÎ   FrC   r�  r]   r   r¤   r   zSET NULLr   r   r¢   r‘   rN  r^   rT  Ú!ix_login_tiltasok_tipus_azonositorÛ   Ú	azonositorG   N)$rH   rI   rJ   rK   rL   rM   r   r   rN   r   rÛ   r¹  r
   r�  Úlejar_atr   Úveglegesr™  Úip_cimr   r   r   Úvalosr   ÚerintettÚ	ertesitesÚertesitve_atÚfeloldva_atÚfelolto_user_idÚaktiv_kulcsr   r�   Úfeloltor   r§  rS   rG   rT   rU   r¶  r¶  ±  s@  † ñ
ð %€MÙ	� T°Ñ	6€BÙ‘6˜"“:¨Ñ.€EÙ‘v˜c“{¨UÑ3€IÙ˜8¨eÑ4€MÙ�h¨Ñ.€HÙ�g u°uÑ=€HÙ˜7¨A¸Ñ>€MÙ‘F˜2“JÓ€FÙ�W™j¨¸jÑIÐTXÑY€GÙ˜¡¨NÀZÑ!PÐ[_Ñ`€JÙ�7 E°EÑ:€EÙ�d‹|€HÙ‘v˜b“zÓ"€IÙ˜(¨TÑ2€LÙ˜¨DÑ1€KÙ˜W¡j°ÀjÑ&QÐ\`Ña€Oñ ™ ›¨T¸DÑA€Ká˜¨g¨YÑ7€DÙ˜6°Ð0AÑB€GÙÐ?ÀÈ+ÓVÐXƒNrT   r¶  c                   óº   • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      SS	S9r\" \" S5      S	SS9r\" \S	S9r\" \S	S9r\" \SS9r\" S\
/S9rSrg)ÚAktivaloTokeniØ  uã  Egyszer hasznÃ¡latos, idÅ‘korlÃ¡tos link-token (jelenleg: fiÃ³k-aktivÃ¡lÃ¡s; kÃ©sÅ‘bb a 2FA
"elveszett mÃ¡sodik faktor" jelszÃ³cserÃ©je is ezt hasznÃ¡lja a `cel` oszloppal).

BIZTONSÃ�G: az adatbÃ¡zisban CSAK a token SHA-256 lenyomata van (`token_hash`) - a nyers token
egyedÃ¼l a kikÃ¼ldÃ¶tt levÃ©lben (Ã©s a linkben) lÃ©tezik. Ã�gy egy adatbÃ¡zis-kiszivÃ¡rgÃ¡s (mentÃ©s)
Ã¶nmagÃ¡ban nem ad hasznÃ¡lhatÃ³ aktivÃ¡lÃ³ linket. A token 256 bites vÃ©letlen, ezÃ©rt talÃ¡lgatni nem
lehet.Úaktivalo_tokenekTr=   r   r   r   Fr³  r¤   rN  rO  Ú	aktivalasr7  rC   r^   rT  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   Ú
token_hashÚcelr
   r�  rº  Úfelhasznalva_atr   r�   rS   rG   rT   rU   rÆ  rÆ  Ø  s‹   † ñð '€MÙ	� T°Ñ	6€BÙ�W™j¨¸iÑHÐSXÐ`dÑe€GÙ™˜r›
¨4¸%Ñ@€JÙ
‘˜“ e°[Ñ
A€CÙ˜8¨eÑ4€MÙ�h¨Ñ/€HÙ˜X°Ñ5€Oá˜¨g¨YÑ7ƒDrT   rÆ  c                   ó~   • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      S	S9r\" \S	S9r\" \SS9rSrg)ÚMfaMentokodiì  uB  2FA MENTÅ�KÃ“D (v34): egyszer hasznÃ¡lhatÃ³ tartalÃ©k belÃ©pÅ‘ kÃ³d arra az esetre, ha a felhasznÃ¡lÃ³ telefonja (hitelesÃ­tÅ‘ alkalmazÃ¡sa)
nem Ã©rhetÅ‘ el. Egy felhasznÃ¡lÃ³nak egyszerre egy KÃ‰SZLETE (10 db) van; Ãºj kÃ©szlet kÃ©rÃ©sekor a rÃ©gi sorok tÃ¶rlÅ‘dnek.

BIZTONSÃ�G: az adatbÃ¡zisban CSAK a kÃ³d HMAC-SHA256 lenyomata van (`kod_hash`), a nyers kÃ³d egyedÃ¼l a felhasznÃ¡lÃ³ kezÃ©ben lÃ©tezik
(a kÃ©szlet kÃ©szÃ­tÃ©sekor egyszer jelenik meg). A felhasznÃ¡lÃ¡s atomi: `felhasznalva_at` NULL -> idÅ‘pont. RÃ©szletek: mentokod_utils.py,
docs/KETLEPCSOS_HITELESITES.md.Úmfa_mentokodokTr=   r   r   r   Fr³  r¤   rC   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   Úkod_hashr
   r�  rË  rS   rG   rT   rU   rÍ  rÍ  ì  s]   † ñ'ð %€MÙ	� T°Ñ	6€BÙ�W™j¨¸iÑHÐSXÐ`dÑe€GÙ‘f˜R“j¨5Ñ1€HÙ˜8¨eÑ4€MÙ˜X°Ñ5ƒOrT   rÍ  c                   óÆ   • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      S	S9r\" \" S5      S	S9r\" \" S5      S	S9r\" \SS9r\" \SS9r\" SSSSS94rSrg)ÚEmailFeliratkozasSzabalyiû  uà  LevÃ©l-feliratkozÃ¡s SZABÃ�LY (2026-10-04, C szelet): a CÃ‰GES Admin Ã¡llÃ­tja be, hogy egy adott
SZEREPKÃ–RNEK egy adott levÃ©lkategÃ³riÃ¡t mennyire lehet/kell kapnia. (LÃ¡sd email_feliratkozas.py Ã©s
docs/FELIRATKOZASOK.md.)

mod Ã©rtÃ©kei:
    kotelezo   - mindig megkapja, a felhasznÃ¡lÃ³ NEM kapcsolhatja ki
    alapbol_be - alapbÃ³l megkapja, de a felhasznÃ¡lÃ³ kikapcsolhatja
    alapbol_ki - alapbÃ³l nem kapja, de a felhasznÃ¡lÃ³ bekapcsolhatja
    tiltott    - nem kaphatja meg (a felhasznÃ¡lÃ³ nem kapcsolhatja be)
Ha egy (cÃ©g, szerepkÃ¶r, kategÃ³ria) hÃ¡rmashoz NINCS sor, a program alapÃ©rtelmezÃ©se Ã©rvÃ©nyes
(Admin Ã©s EmelÅ‘gÃ©p Ã¼gyintÃ©zÅ‘: alapbol_be - ahogy a korÃ¡bbi mÅ±kÃ¶dÃ©s; minden mÃ¡s szerepkÃ¶r: tiltott).Úemail_feliratkozas_szabalyokTr=   r   r   r   Fr³  r?   rC   r¢   r   Ú	szerepkorr(  Úuq_feliratkozas_szabalyr£  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   rÓ  r(  Úmodr
   r†  r‡  r   r§  rS   rG   rT   rU   rÑ  rÑ  û  s“   † ñ
wð 3€MÙ	� T°Ñ	6€BÙ˜¡¨NÀYÑ!OÐZ_ÐgkÑl€JÙ‘v˜b“z¨EÑ2€IÙ‘v˜b“z¨EÑ2€IÙ
‘˜“ eÑ
,€CÙ˜(¨TÑ2€LÙ˜g°Ñ5Ðá& |°[À+ÐTmÑnÐpƒNrT   rÑ  c                   ó’   • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      S	S9r\" \S	SS9r\" \SS9r\" SSSS94rSrg)ÚEmailFeliratkozasi  u+  Egy FELHASZNÃ�LÃ“ sajÃ¡t vÃ¡lasztÃ¡sa egy levÃ©lkategÃ³riÃ¡ra (2026-10-04, C szelet). Csak akkor van
hatÃ¡sa, ha a cÃ©ges szabÃ¡ly (EmailFeliratkozasSzabaly) alapbol_be / alapbol_ki - kÃ¶telezÅ‘ Ã©s tiltott
szabÃ¡lynÃ¡l a tÃ¡rolt vÃ¡lasztÃ¡s nem szÃ¡mÃ­t (de megmarad, ha a szabÃ¡ly kÃ©sÅ‘bb lazul).Úemail_feliratkozasokTr=   r   r   r   Fr³  r?   rC   r7  r   r(  Úuq_feliratkozas_user_kategoriar£  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   r(  r   Úbekapcsolvar
   r†  r   r§  rS   rG   rT   rU   r×  r×    sr   † ñdð +€MÙ	� T°Ñ	6€BÙ�W™j¨¸iÑHÐSXÐ`dÑe€GÙ‘v˜b“z¨EÑ2€IÙ˜¨5¸$Ñ?€KÙ˜(¨TÑ2€Lá& y°+ÐDdÑeÐgƒNrT   r×  c                   óp   • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      S	S9r\" \S	S9rSrg)ÚJelszoElozmenyi!  u»  JELSZÃ“-ELÅ�ZMÃ‰NY (v36): a felhasznÃ¡lÃ³ korÃ¡bbi jelszavainak bcrypt-lenyomata (NEM a jelszÃ³), hogy a cÃ©g jelszÃ³-hÃ¡zirendje (jelszo_elozmeny_db)
meg tudja akadÃ¡lyozni egy rÃ©gi jelszÃ³ Ãºjra beÃ¡llÃ­tÃ¡sÃ¡t. Csak akkor kÃ©szÃ¼l Ãºj sor, ha a cÃ©gnÃ©l az elÅ‘zmÃ©ny >= 2 (1 = csak a jelenlegi jelszÃ³t
vetjÃ¼k Ã¶ssze, ahhoz nem kell elÅ‘zmÃ©ny); felhasznÃ¡lÃ³nkÃ©nt legfeljebb ELOZMENY_MAX (10) sor marad. RÃ©szletek: jelszo_hazirend.py.Újelszo_elozmenyekTr=   r   r   r   Fr³  rZ   rC   rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   r   r   r©   r
   r�  rS   rG   rT   rU   rÜ  rÜ  !  sR   † ñOð (€MÙ	� T°Ñ	6€BÙ�W™j¨¸iÑHÐSXÐ`dÑe€GÙ™V C›[°5Ñ9€OÙ˜8¨eÑ4ƒMrT   rÜ  c                   ó  • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \" S5      SS	S9r\" \\	" S5      SS9r\" \S	S9r\" \S	S9r\" \SS9r\" \\	" S5      SS9r\" \\	" S5      SS9r\" S\
/S9r\" S\/S9rSrg)ÚCegMeghivoKodi,  u‘  PARTNER-CÃ‰GEK (2026-10-06): meghÃ­vÃ³kÃ³d, amivel egy cÃ©g egy MÃ�SIK, Ã¡ltala nÃ©v szerint nem
felkÃ­nÃ¡lt cÃ©ggel partnersÃ©get kÃ¶thet (l. CegPartnerseg) - Ã­gy a bÃ©rbeadÃ¡s/kihelyezÃ©s
bÃ©rlÅ‘-vÃ¡lasztÃ³ja nem az Ã–SSZES rendszerben lÃ©vÅ‘ cÃ©get sorolja fel (korÃ¡bbi, a user Ã¡ltal
jelzett adatszivÃ¡rgÃ¡si problÃ©ma), hanem csak a mÃ¡r Ã¶sszekapcsolt partnereket.

BIZTONSÃ�G: az adatbÃ¡zisban CSAK a kÃ³d HMAC-SHA256 lenyomata van (`kod_hash`, kulcs: SECRET_KEY) -
a nyers kÃ³d egyedÃ¼l a generÃ¡lÃ³ cÃ©g kÃ©pernyÅ‘jÃ©n jelenik meg egyszer. Egyszer hasznÃ¡latos
(`felhasznalva_at`) Ã©s idÅ‘korlÃ¡tos (`lejar_at`). RÃ©szletek: partner_ceg_utils.py.Úceg_meghivo_kodokTr=   r   r   r   Fr³  r¤   rN  r   rC   rW   rT  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úceg_idr   rÏ  r#  r
   r�  rº  rË  Úfelhasznalo_ceg_idÚfelhasznalo_user_idr   r_   Úfelhasznalo_cegrS   rG   rT   rU   rß  rß  ,  sÆ   † ñ]ð (€MÙ	� T°Ñ	6€BÙ�G™Z¨ÀÑKÐV[ÐcgÑh€FÙ‘f˜R“j¨¸Ñ>€HÙ˜w©
°:Ó(>ÈÑNÐÙ˜8¨eÑ4€MÙ�h¨Ñ/€HÙ˜X°Ñ5€OÙ ©°NÓ)CÈdÑSÐÙ  ©*°ZÓ*@È4ÑPÐá
�y°¨xÑ
8€CÙ" 9Ð<NÐ;OÑPƒOrT   rß  c                   ó  • \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	SS
9r
\" \\	" SSS9S	SS
9r\" \" S5      S	SS9r\" \S	S9r\" \SS9r\" \\	" S5      SS9r\" \\	" S5      SS9r\" \\	" S5      SS9r\" S\
/S9r\" S\/S9rSrg)ÚCegPartnersegiD  u!  PARTNER-CÃ‰GEK (2026-10-06): kÃ©t cÃ©g kÃ¶zÃ¶tti, kÃ¶lcsÃ¶nÃ¶s hozzÃ¡jÃ¡rulÃ¡ssal (meghÃ­vÃ³kÃ³d-csere)
lÃ©trehozott, tartÃ³s kapcsolat - ez NEM ad automatikus hozzÃ¡fÃ©rÃ©st semmihez, csak azt jelenti,
hogy a kÃ©t cÃ©g "lÃ¡tja" egymÃ¡st a bÃ©rbeadÃ¡s/kihelyezÃ©s bÃ©rlÅ‘-vÃ¡lasztÃ³jÃ¡ban
(routers/machines.py, berlo_cegek_valaszthato). A konkrÃ©t gÃ©p-kihelyezÃ©st a bÃ©rlÅ‘nek
tovÃ¡bbra is EGYEDILEG kell jÃ³vÃ¡hagynia (BerletiIdoszak.jovahagyva) - a partnersÃ©g csak a
vÃ¡lasztÃ¡si kÃ¶rt szÅ±kÃ­ti, nem helyettesÃ­ti az egyedi jÃ³vÃ¡hagyÃ¡st.Úceg_partnersegekTr=   r   r   r   Fr³  r¢   rÐ   r7  rC   r   rW   rT  rG   N)rH   rI   rJ   rK   rL   rM   r   r   rN   r   Úceg_a_idÚceg_b_idr   r˜  r
   r�  Úvisszavonva_atr#  Úelfogado_user_idÚvisszavono_user_idr   Úceg_aÚceg_brS   rG   rT   rU   ræ  ræ  D  sÑ   † ñQð '€MÙ	� T°Ñ	6€BÙ�g™z¨.À9ÑMÐX]ÐeiÑj€HÙ�g™z¨.À9ÑMÐX]ÐeiÑj€HÙ‘V˜B“Z¨%¸ÑB€GÙ˜8¨eÑ4€MÙ˜H¨tÑ4€NÙ˜w©
°:Ó(>ÈÑNÐÙ˜g¡z°*Ó'=ÈÑMÐÙ ©°JÓ)?È$ÑOÐá˜°(°Ñ<€EÙ˜°(°Ñ<ƒErT   ræ  )bÚsqlalchemy.dialects.mysqlr   Ú
sqlalchemyr   r   r   r   r   r	   r
   r   r   r   r   r   Úsqlalchemy.ormr   r   r   rÓ   Údatabaser   Úmetadatar   r   r    r#   r%   r&   r+   r/   r0   r1   r4   r:   rW   rc   r‡   r�   r^   re   r  rf   rg   rÖ   r×   rL  r[  rØ   rl  rr  rƒ  rŠ  r’  r˜  rœ  r¨  r°  rÃ  rË  rÎ  rÓ  rÚ  rà  rï  rù  rü  r   r  r  r  r  r  r(  r1  r8  rE  rW  r\  r`  rY  re  ri  ro  rw  r€  rŠ  r   r©  r±  r¶  rÆ  rÍ  rÑ  r×  rÜ  rß  ræ  rG   rT   rU   Ú<module>rô     sA  ðÝ 0÷ A÷  A÷  Aó  AÝ 'ß 'Û Ý ñ
 Ø�d—m‘mÙ
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ<˜¡*¨^ÀiÑ"PÐ^bÑcó€ñ Ø�$—-‘-Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\ó€
ñ Ø�T—]‘]Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ<˜¡*¨]ÀYÑ"OÐ]aÑbó€ñ Ø�t—}‘}Ù
ˆ<˜¡*¨^ÀiÑ"PÐ^bÑcÙ
ˆ:�w¡
¨<À)Ñ LÐZ^Ñ_ó€ñ Ø�D—M‘MÙ
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ:�w¡
¨<À)Ñ LÐZ^Ñ_ó€ñ Ø˜TŸ]™]Ù
ˆ<˜¡*Ð-?È)Ñ"TÐbfÑgÙ
ˆ<˜¡*Ð-?È)Ñ"TÐbfÑgóÐ ñ */Ø,¨d¯m©mÙ
Ð$ g©zÐ:XÐclÑ/mÐ{ñ  AÙ
Ð˜W¡jÐ1GÐR[Ñ&\ÐjnÑoó*Ð &ñ Ø˜$Ÿ-™-Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ<˜¡*Ð-?È)Ñ"TÐbfÑgóÐ ñ "Ø §¡Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ<˜¡*Ð-?È)Ñ"TÐbfÑgóÐ ñ Ø˜$Ÿ-™-Ù
ˆ9�g™z¨*¸yÑIÐW[Ñ\Ù
ˆ;˜¡Ð,>ÈÑ!SÐaeÑfóÐ ñ !Ø §¡Ù
ˆ?˜G¡ZÐ0FÐQZÑ%[ÐimÑnÙ
ˆ;˜¡Ð,>ÈÑ!SÐaeÑfóÐ ô*ˆDô *ô9^ˆdô 9^ôvCˆ4ô Cô&˜ô &ô$ ˜ô  ô&`Zˆ4ô `ZôDh2ˆdô h2ôV$%�Tô $%ôNA�ô Aô<˜ô <ô4,5�ô ,5ô\?ˆ4ô ?ôS˜ô Sô6)˜Tô )ô( ˆtô  ô"
1˜ô 
1ô&˜ô &ô,K�Tô Kô$%˜4ô %ô  �ô  ô
"˜$ô 
"ôH�tô Hô&.�Tô .ô&"%�dô "%ôJ
A�Tô 
Aô"˜4ô "ô&/�tô /ô%˜ô %ô*
/˜Tô 
/ô#˜4ô #ô:"�dô "ô.
"�ô 
"ô=�ô =ô:ˆtô :ô"�dô "ô"�Tô "ô"˜$ô "ô("�ô "ô"}�ô }ô:
e˜Tô 
eô0�dô 0ô%�Dô %ô>*%˜ô *%ôf?�Dô ?ôB�ô Bô;�ô ;ôj�ô jô$"˜4ô "ô"%�Tô %ô: &˜$ô  &ôF$�tô $ô$˜ô $ôD/>�$ô />ôd[˜Dô [ô8f�Tô fô,;�Dô ;ô$Y�$ô $YôN8�Dô 8ô(6�$ô 6ôq˜tô qô0h˜ô hô5�Tô 5ôQ�Dô Qô0=�Dõ =rT   