diff --git a/.gitignore b/.gitignore index e427ff3..d0eb167 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ node_modules/ */node_modules/ */build/ + +**/node_modules/ +**/build/ +.DS_Store +.env \ No newline at end of file diff --git a/app-shell/src/_schema.json b/app-shell/src/_schema.json index 56a076c..fd80988 100644 --- a/app-shell/src/_schema.json +++ b/app-shell/src/_schema.json @@ -1,5 +1,4 @@ - - { - "Initial version": "{\"iv\":\"R64ZmgMGQV5OQmhp\",\"encryptedData\":\"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\"}" -} + "Initial version": "{\"iv\":\"R64ZmgMGQV5OQmhp\",\"encryptedData\":\"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\"}", + "version 1": "{\"iv\":\"NHfrwi7UPPA92uv2\",\"encryptedData\":\"BVdkMgmhUr+DhRTJN1IZKv5tZAJaQ7TZycMMce4pa6BfTZBQz7DSSh1Cj/CbYa7ZNvF14OTJxAB0kd4dzL3foVqVll7RMOLrSS9kaQLCll3CNyLc8rBgniiZ1qMayiLCzfMA1MUPiDizJBOZ7Usc2RFyI8wttcrNBV25R6hUurgxOjhmuM2XzSEe3mOFxMU83bjqRoZUvv8MwAzN5WAtLbiorR3uI0en2RElufoodRfFzUJYN3F22mR5mcpntE1qFB5VpnDn4vl7ZeG9Rdg1ykjWLxRUImFalhQC5CBIGijv0z4ybTG9tyZUwGL/uOpyDSuKqdX/vWxreLb1Xa5/9akDXtJ0YsMHtyWAeE9vkp/5wDJnwVla0QTrYkNbYG+WzLaniE0p0fhXdofdNzb19wDYfn6aeF4uKTeUoSxm6iDtnFGVMdii4AZTX90uDOzXZ9XfO4YM64gr4mexHdnG996iJYAvxLGTvJaOmIeN54NHPHBNpBrYOyJVVTXHi0jl0q6HM32uFODwMxoPrr0CWXtlpwOl8UwHSBu0LlZ+MVKJtQoyAOjLt+Aw6zREHXRiY5m+mB4ySwiW/9H64wtOLX8i6JaeEVZ59mbIlgt8tIUmNZkYcNIHZUzg378D4FbAJj/TiZtiRZewdgFMCanrir8PlqkjVltWu84gFEgGU8qSneD9vPUhPsnPeBDI4Lvu/lyDzm1evg6/PqG5HZJqXkifnZyMpicBxqoc83nVo4l5DwjrOax0Xmgwons3lzsTq/OVnBlC23vperzgBDhiUZt77NQM4GADzGFCUdo8KAoxue+5Z7xXdAy9z7nukGPU1USqxpDUCro93yyMs8r1UN5wAQFz9472SWP92eJ3On7+f88+nnfXOCr7FDMwploOIfpWdNzmqRW/kVofmUklN2oE33UzTlRaxiwroL+1ehj5kKLEMeQIhcD7cfi8VcB45LyXxSyIEF9jqQkzmqAXtgY/RC/0IAijVawOwVUVFtZYhZBrROo8VReTkC/kluEVYIekbPG49hyvioLRm13MgFlV6ob1eekWqi1NxpvKaXlSTc+AvLbudxofOfDX5uMQlOf2GbIPJlD0iik4BXBmp+VWIeWcxaFiFtgM0YY3k6xiOTsZnHa9IWUppS0REYj0EsfREmoMkfZhRSLoMUNwSRrU/RKIILkkaRRBcpbtaEcW65C3N3yrXtU5gwoGWESCOAivPQ/mqmedeZWys9NaeMbjivK+K/YCa6FHzMrXOEEorgqzqoLgepB7u7hrw8q7iCQVX+ICEquTMOxDlsUYnHuq4gvdnXFK9WPk5DHieO8ctgnJRgvq4DHe4aeRX7y1U66AdKHmF6BaB79Tm3JUQsbkWdXEC2x2UTddBKcaTxogtcswq4uDQ9i7bgPrFnzXfgaZXha2426wDpH1qq6cpsMV0KXygr4qA/Ab605KaM7vFTpDgrCQ4shf+YDnenitnax8VriFhFHeFFL37k07yS7sEFyTwYXEPYMTS0EpRGXZ7xsQ1WMH7M/Bf/USW6rMLJgzItyEKWyYtmLn9A4oCqXqENDthxgQNAVcw3CIpQ9rDggOPNc4OCnF2/jnjuFdJR6laNDzy8jODxabuR5X4OTOsw3r2KvQUYGRjv8BiCgLP0eTngNg47zCt8E8YhPTGKX0OinfyB1NX4bQ+y6tvmcKNIPGeG/RYcj7UpLs2tXoHvE51Mn5pLOSaQsI1Dm2UqFrwinjvRnr0VKreGDCav446alBMgsVkI6tX0houdnrFK9UtTkbWSgbHnUyg5UJrhotl18VZG2bY/4n7Zq2hC/1vegtTNUfHQ6k8uzrsap3xpjroLl4Sdr6muJoXUdx+rYn/X5lbJ7RuLFz0CKSVvhu63yqu9NnoPQGn9gzo41BJPD/5EqIoYG4f6Sg9gQHcvd007gqqDhTf2ngiCiFe3RUYi2i1CWEIms4/5hA7zEdfZloIx77yzzKyBJi+53vSJ6YwuIKYlIEKIG/uVdZpmE6qVfAf0zbEflLYG5sKIvwhq9KFSuHNUentH+Op/Cqiqeud3ghfWUzbkypQDNHtvPZ6oEZJLFf/8lCdNY1/uXV9eWVAj7FL8rp4foVWuDs2P3ZiGPRTGOdgMTbSMNmX4C2/LogvJqva1miN1IPbOcERRIfGiJJhn2Eh18SIU9IYoY7bsmtapYJG9wCCyenoGYtJi9bCxrRxfCLJ/qFI1y8QyjFqbC7t6jS6DZLpupz5pF+oZt+qPRWuVnuHjWHFalO94ZLZhj8oCsvv5igqvIwOX9QcVpdf82jMrMErP7HDol9S9msZrcjDeeF88p5uNRaoNWwPvg6us0uYt028o3aZ5XU90knszusk9eUPm7hinnVMDQIdLzpaPXGs9BwtjXdv9nqPlAIQ9VIcH7BlxWj2G2KbQF8kgU0ZzToPXOEGquFZrfSzDNMi00c+cw0WM97xuNqCgJ8W4+EIA1YmNEGyZL2AFbIQlaAGs+9fuAS51TqiqFPE2uc6KZoEDaStZkfs1rAQTK4o0rrclJToVpXpldQyBWqzMv5BCg/8j3UnpmwPe5uaTp4GhXIsHY0/LZtGlQ6Zwt59UGfQScAJS5Fnp9oriLb5jRh8GPWdyM6TZ8ezLjyNEImzJngSq0P1OCEUOVqqTjqKkcRp8R7+ZTQ8uiSIL4nJHsZxUp+bNOdcbOqsMZ9pLBsp7EBSmNGWxR+nH89G+Qitx4N6EitZ/6zdvyreUgnuQt5S2HbqsJJKv3kdnKDBteHey2/X9SrgUOkQxXMbuPUYlgTr6ZqaY/Ddti6cfQHZmhxehcX3jKqxB4TE6GMEhoVjxZ+So5t6EEE1mlIQACiIQxAA0dEvDmq8HUxNWgvJfM8xbiZPvbFObUL3kft5Cdy6I5uECQ+ofUku115rq/5rKXQay2kYVzbCJPUDrdpzvFX5DXbcBDhObUFxAG48p0r9eMlUhyXS4FfixKM4sbqroWSaB56uyerBEp2vomRDFzYUIBfRv8hEvzgb3lW0dbdGpdxElTN1HZup+OVQYug5MNFVrqYUJ/BpkF9+zVK6PK/8I+IgVNeNV+fJC2xdLcVLJ3bxzFj9LpOrpoOS+bTv2i65lIZ2KP6/4NugoRi0JjQZWIaz9m5/lD1OuPcn1k7qqflsDh/lcu2U0JtTSOl6Rbi4kGTCeKBw6O896M3Encom8Odawg3kei6HLPp7IpM5CQzCp0iUuCZ+xUFBp4Vs0W4oB3OHiX9c+7o3S6Ll7kf+QTcSYRC/iH8HbJfBNSsYT8kSwRc4xiOhuJZcXbNrJ7yS7G5jMaiex6DiX5ilig+68GosuyLuxsepG+o8jAwM8P2+gvRILgBjfrziprN61JStZmbOEEvphaIETZp/lCIkom/IaRrAnkWGKF5SrIrcARPyjLxuMZZuETe/hn/AWoXChVWD1mQw4QDDSygWlWoDRjWuAVhcWsj+XhAtegE2I3NJ6vnOzSwrje9vh3nNSJ5xgZRBHSCjvpZGzH9k/3S04xY30chkVaQ5gDbMFMsiD2idJASKNluCEsEjk69IQ6cB8VkmyhokoS6jYfJzWOnwjaU1SLdPr41+AnWXvOSe73BNhCjxiHyuV78YcpzE0K8SXVmrbquSY41Oo95gu/AzW8EBgew9m7YKqlakw5KRLQ9IGwpcYSBsje9I/NvEFjEQThiKQ+v+jpNlv38DZHXiWC0UNLkwNQiWpeayZaF8CJcg5as2F7bukPHH51a/farRrBRTTfGI9R24Hj5ZQbwEzIC0+CAO2GDdWfual2uQr8iTnEwhNJbnWsHpPRFx2U05g8RnFpd1/KgdiwPKACJwm3UJuVOyUPy4qNi2gD7aeLauLlpn5EtRxXKruJpARjc55V+Y/IIPUoG2whdImXv6X5qBo5pynMaQGXYtIXCIBJyLUiSm6cDarjZeDWTqG3RI1JFKpuxopkABqqD6/kzYt+Q3blc2wmt2Itle5qrExEaUDWlU65UZYZhaMP8nd+g8vRimL5nPfLLNq0Rb+/r3pRLuDJuNdMmXYjqnYzn6GIDPaCPyUUbzhKiRvSB8PXKrbL5WUzEVEYPr5iqul8Lw3COxKtZ0uk+1zXNeJwgpwlIXvpsVtPKY4PnDczJwFrSsVlfRSJoB3dLbBxvFZRlShUc5jen0QUR7tf5tsOoKIsac70pzHfrnFaMAXMChqR8jyqW2EOKvWayRsl4d3TUPy8bGy5tlvp/Bs8QwasYQ77e/E7IW7j1cfUWlN0FqYdWZ8kVf1GtgpYOFR1jfBlFFJ7qYhy2uysXrOl9/9LG/UJbbxnNR7ZofwSigftADkvYGgSAnYPILC6SQIC68RqeJG0RuXsRSjtAJW9mNolhHkN2ej4tlG7P6x/odxd7/PV3axHyFBpbzycFHxBZAKRBK3+ygMdF/6Cy25Ib5yikrvQQGFr1kN/bGEarkzxZBp4r2ykOcbo8MbSdcMXVx33MCNUSynmbvXgmptdm8zE4/GMJ+IdGKV/u/XF9hCAyYNqal+ZNokYUYb0y9Ypdmcn0JTqTwPbOMjPDSlywPxiNxaUPaKFphB2moqXmxJmuBZyK4SFbIeYhoNZEtQMQv/WeveKB7s9A0F+A6uGXDbCz7+24VKq3aMcYCVMbtd3OprTeysDR2RkUYbBUlJvj3Kr7miy+h9zdbr9FeSXTf/cmUJ3RdHr7tW1w+2xu2gxqk46u0Gju4XMv8NCwtpl1bYStAJbLBA0mXFZzccrYAMeu/I5vQwTFMbe322k+nWgXgL8R1ZpvCi5eX1jN/PQKTtYyJWUMe10uAOoFnrMC0kusHpB861N3gIOGEGCAIc/GM5N18UVRzDeo4OCjBNJrPvFFyszLSjKNRzzdfu/UZ9Pd1wdbzIHBCGCpnpr6zb4GrI223XPxmCQ0R2XSox0I7A/Nm3kMC0AXHr8zFChywaMPE8MKnhZnB1Kk+2O4LZzvQXPgPXXlaKN1VnttINxyB5Ak4Zxv9Kf4W7SLhU0EHGYq3HPQc+TuX2AQ9YSG7TE/U5nxbRL8XNmXnbIhjVgHNwSYoBesVzy2i6QSQI1vVCglMNsMew3PtNyhhn3lvYGYHQUIvJjaJJNDQpUMTqu5f3ehBuEpcobgCeWm//0LfHFeCh/tcEtn6ze1ekTrJDd0jOqagp30obYJeelty90Mmc4yzmtbymNanBband280Qxsz4Af9Lt6p4J/CHMZ1kCw3mcJjVwRO4fb0+x4Yfb2UFh3xQ7oaA7SnU/12L/I0qlr49OPFzMu1zBWQUMH20ij63e7kZl8piLsyXrlwSzwhlafQl+GwrkLHBJZCxAO9j0wG5rpOgsFUcJfOp6LPmE6nWt+zN/PzUsJ9aLqUay6eg9JyzWlYGj3OKY7v1GKLN2yI1Y8BKSufA8l+0ysHM5HWIrUvY73yRQGfg7U7AQkLUikT4oOy3icNzjem7mx1S/cGUTTky0/js8Wmw5ghAueiuK2k6DFyhu5hl2s+Q5kLcpkXc8ppImzCZ8lDk9z8aXGEJrfjzvQMRS3yZ7wfXzavTmXX4/rfDilMRKsxoQFE+/YJl4NICKgLikeIdFLGgqa3heacbytoaK4OMtsMZtgrQi9s5btZW7+os3m/g5iAKT8cNuvrYcxgWkDaWqwx+8emFgtuKadyGJ4jQQVRoaTX1GJsswyaWulIPspvOu52Fpea0nw0Bc8eU89Y4WWjmLlDq0boLylrqY2hO3SM8YoeYBBhUxYvpjpfYgqlm37oeBqFjoNQQGNd5zPcjuhiKZ/cFathK+IGb9FRIV/5rY0V+wp5UwZYynIMTGUMHnLvA74og3EebtNbWiTfOtGxUh3l7NWD9L2D7Gmx+EsznfF1oqLAL7peCta34rMllHYQ/E/Fc3maLBuPRBCGMUvYYQ/xmWY2kboMeYEhORgdBb5xJUkNEEJrCOv9d6ZSmmeoW8FxBdDEamSyUaLsGi22Foyv8t9xX+0vAVpOw5fj6RI2la4D3HuJlK9yHBeoacjpOwNYb1FjNicJyrdUFtV6jsQL6dI/yjDLIlOQ8y5OycVms/x8vfM0mAL00tIxPLtFF/dxfMA4x8A+skzwdCfSmhsUhQ1v6oTCxFAjLaAXhd6f8TIKjeXnYA0W+zLnIJffFPrmPobKtiDPZqDpqXQqmCXGCrZNKCGW+eGn8RIhXeHtmW/SXIm4vN8SdvRBVCn4/KTCELAqAbTpXrsl43/oGdTsup5jsFqqczO183TdViQ4vMNCKhOuS2pCfrh7dYmb++ZBFVMoAg2HoaR1WHI3OQXFx4EEYWRLe5n/+ZcN/aVkyN3pCGkaWasf5dsCpa5yGnn4upspVlSt3lgK8UUF3B/tMs9hkPvGfsWyTOS+2634AIU5Vj+ZTW+zFZhXkyZsYVtjF54M7meaPUGJbcKqVjo8L54S8sSghzEelSY+CiAzyK+1SBBSpsikf5cs1VUUDYbUvRwbdcuGHT7hwFWW1wU6DFKsYMLPSyuGaNNJkmoC5Lp7OjMgIR3lYJpI8mvYH5W5l1SzqnFrGxhzKFO+Y+KcJD4bZBpxL60+hONSFxWy1hbP6sRzznH1rcF4bfVrlV7LlhPMzLoNUJIvMHylLgJEyQ8z/zQt2R9DhjYJDma1MkWOZKy4nO0TEvl+qT3uMwysqugZ34x/G+46nF6FRyF0IjW6SkVStQ3i2aJW0lL6mZzvY9KzSh0U5vLI5RhD81X+IMdcmNUK2ISx0gPRVaZuLjYWTtx+oEKK+6LEr3tOGAKhWEwu0l+wiMHXWC3Yekq4UptMBstTkzOyfrGaB1EaC5KVYyTCVBExpQ+3ulz8P7Jbi+2VNKxgiqld9T7ylSWJ44dsd6i8SfhMyaxU9OjQrVmU9/2ezupTvQopT742ao667CYLa0scYNIRY+Lr6l/aNFx9ZchNU3EY9gC8rM4JXJuqmYJcGc+dv8KUU6h7T1Xex3Iz693ZI7Kf5S5J/IR1Pik4w48fVzEltwkl0u4oJX2+Mn/tp0YGrwnL+1sWDFj+3e/OzvAAeLDje53I5ylXo8a9JGyoH9Jp9JE94O3ZAYrx7GYSKT/L3VhCH+VSmKndBF+VfCdZhoPN9kZvPWqq11mPxZ0PsybCVa4IYHDLR0DTGLQYaaGTu75F45s9MxuvRxHizP5YAyERCxKFHWQbNOmYlt6BY8dYtMHYx0cafRbVQuxQDlEa6+ur7zXvRrjbZJjllrx1jcxPfvGSne15mOeBiIvMHmqADokblqu2456T03mYtlxKJIcNKRuZotlT73G8UQ6ypQZAnVEBLLGMncoP8FsEk2i96DZqBdLP/MceB+gH6kLvnacvTsCh6Oqcqsntl12jmQ2DspowDhwo+mVTPVLjBKvE33Po4r4NXSreZeuuulRVa+567IVyc808Oqsk1mDDhMO5EanpqfwmYLIdrd7wFPMLMXHa4VzzWqbgCbzhd1/e38HfeT0nsNwv8fFpNE7HKvB4fR1sLIVXXwJsQsVE0TX+6C8B6OfZHuvXfI7h3k94NU6f2Hd4qJbv/YbX5cJdxwTBDBHCRuauoWLu5oC0CsOXnv52i5NQOplU7GLH0hQoi92PRef3Vw5ZqCUdgPM2GqNXjGx8XEHKO9C5/ubP30FR0l8mN5b13wT1CtTc1Qjkg8E0PAi/mYHevj6/OSNw+d/3M4PDaLvgZ/pNCK1J2/cZVxpGlt2JMhlOmP3U/yD4jYbUSj8YmzSjcPCmRbqlNiAMlnySqwCjNXIcd7tihblm4Q55PnfIva+U/Yn2GiMmBHxkz1zO43ReTSXf92baZwHk5IRNs7wElXLNe4RPFuMbQKBFrBOjfIjJyK8+Hf2yE+rwF0tqz7C4NV/wEzrYBbFKWzBvrMpZdye+vUSwYd7QUzuYLJ9gjwNYIYR+tcVIse4cLU1/Otg/fvHFPWmqyxAMH01861ruIdRIXnhXLKYLFJA+Lpaivdi3r9zvO1ym5wU3sVyp4qK9bbkk+MWA8EafmzLebpUaSb74GUWkMDDy9uOW60zWLyIbFznau+A4EP/3tOz8tfjOlXSCUyWz6jobCUWVfDEBhhGCDdi11juk90i8nOf3eNUv1lWJPyjpRl3/R+vFYMkiF+qk5/Cj6uJBT6jJKhsPGbl4jzfaj0A4KeVygDfVldT10ayXAImCOqq1GoroFTuxjH6NEtZLSRO6ks4kO+xlUOvCm5l0XT3OhdKxoQ9xo6KJLydFrufeG9qS8YYVog48XosPikWHjD/p3fsC0Q9nD6X+IHbpi1bWBuCqKdZWEnD7KtHlv07HR5ZC6w3eihGBVxL8Uu6f+vPckzq7O2A4rKO2+7S7YXJ/wDXxZwf7twmw8VUDatdqIm7RtxdfPcRRG82+fGJC+hPvUS/TGbKaEAm+04csRkKXcnWgoOWH+Tdq+4vOUDuOd5ckIP8Hq7scyLjUwuMeYCWNT1wa0j1WFs3xJOhG0hPLXJwJIjzIGyXSOMZGX4QwRMpiMXpnjbPBqD2e8kmu0NYIEl/JeHppeu/KMO+MMr7W3sUHzvF6BaXe6TsHAApU1uI3+bpcqTHH90YILF2EdUWn1LTHC1RZSFwT1LeNXxIi7SKIueOWurIAuvtgAc+p1Z4uh6tLe+pgjvlfZCvdRrZV4S+LPCd3sG0Kd/N8UYSCBmdU2GAie6BoiJiX7V/yblJtpTb6LSofx9tJR7LpU4MVpjirqrBbk3wHEZJzFmOZuFRagJEtg8EafypoMoJqjic1xhz1lc6cjbj2yAtukq9TD2OrILlKHx0o0WKDSYt/bFn8Lt6eI1fpGFEGCOP4KZcQ59mzLn3Kwc3uMU4OFulaXzuUcRd6JiuW9H1kA3SgbsGcIEjJ+s5r2X32NQXcdgXzP/Lnf+y1S3fkcoHrEFUI8dXXNcyOE/65xARLB8RYYk5R+zDpm52cNGQtXWex+eR7okzNF9jNT0dkDDs/zkzOn3B+lepNp1Sk620FQtXqLiSu/GDZM3sa9eiPuJg1V7bnIIdG+ZgkjqZC1c/hCXsJmjyrg4rVmCYyB3mDZp6aEKx45vG4Lk++RLmaoF4gYGIGm4uDb+Lf5GYloqW2EluDqK3ehN4x8Eb2ncZnHfDwCHpTwpoXDszBToAQnPCo1rXz58J6vcbWRgEiJhYvTJh3drwnCO3P5qCMwYAelWapFcMX1wQUryRp6Gq4KRg83moIVUPa+Hbfyb/Q5aOfPjkl+qQBOvIssgDJj7Avrlti9pNMwzPF97/i03cRYzqwdIYeBLw7Z1OYZdVOu3pLtEpo2oYwpoCDt4PXHutuj1kXBfl5fBgyVdrgttuBE30pCgpv0+HfQ3k/00DoD5G8eiSzq5I9TtLp24xecGxjtuZg4VtB82uArJhPtkiDE/5zlILpSwFRhM3mtt2dQlFYkPIMQU9nSkWPlcB7BX9Uuq7hHIl0xo5AbGV77o+A0lXWS05TC+1MHKtBk5qhJn74i46PiglXFyBpSgpLwkkEnbd1oJTgKwtm8e/d42pg4mi1j+ekMogz9K7SvKn2fDFd2cMDJ6TgvYGtlUmIAmo2Nz4/r34y0TxQBUyUYGpTX0KwB4P2VKDTI4A4m0rAVojDfIcASwUuTeAayv6HmVnz/0a9qEoczPG45L6c66/oA0W/hznRgw7up/3JR5/2Pklv1jqV9ZPyDipDeAD7RI3Izv/KVmyspV0tx6hTweX1qyAXk6Dd18HCyZBstgFM9Cku856wDlZv/5H/t1XdgRJqArXmjj40BdTg5lfbJxY3oy45+5JMo0DyknwAg1xtxIH8uCJHHTMfBK15CWMU0FqmyGFnib9dPSma7b41bxW1erGr36BJzBDAo430viY0TBChi5ahw3PgqrkDofQfYPbjFR/udtS5/yeXh1zPE2gKQcKCl4tCo/iH47JIIqkcaUDya+4aKfArp2uD9XCnyQV4h3IzqfN5h0X36gtJAercxpkNSt3kb4SawkmPiMwUzrmJSoX3N9eXtmFhGrUmNQ9jgdRtWmz8mSSM/ppMx9WDioyzFLNMP5KKuG5+4sX3qz3EC9CIetisoGGdXMYKI3nVi+7FlRdGNQu9IdHvwxoS58Py+q/xD8xDwEO+/CUA+Px04jwuEAcSQ/X3/6tiHZy5lEaSvfZ68sHTsNHNNovuQ4Jj/HmFOT0GvPM++/ch5z9tDAH8DnA367LgAHbg2enW8in1+wf4tF3CoYPGfwhx9nNuPoX7ZldS1+Yt4KFqh0RPaaLF7O4iSH4GuNVVMh1F4qiLHVRNvosjSFRkLEJMGVIydPsmlD3Cf9u7j1KPIvhKzutaPOKpDZEEVs/qATHOlDipmJAQMyFq7qjc/E5lUcExz2ZxsSP6CiixiVwgweFZ2NdB9P2nJKZltA4Tr5aSNNVF76Kyw1F0QsfMuoEF47Ss5vs6ghyFQ+d9D70WHjiriSlmeZNxE7oXQvAWKpJhRCEVHcP2SDErPGxt6VITNXevfdiLmZw9/ozFIVRBD8+r9//0Uea5QF8DHJkiSex0OCI8yWvpgNKmbq+zbi6vznDrYSimj8UvmSSvlSHLVq5lsZpM6BpREWzRlr5EwnzPAcUOvDlySoYipzAa915KEiioAGYUG/g/GHzlzs48hIjMwsfH+symVgD8zPo/pQtzRl16jpxkN0OrEDLNOPsObM1ua3+9ZJmex4hj7aVE9SaXwY684IAyr9NDufL0xk7rDyTErsA7IAJV/nIvQm6q8JTARv2BifkbL+XoS6/O/I+6k2g7ev4or8rK4aJD61+ns5VTC+asF6P6fnRzJlTALI2jIyVFFh/aXc81+t4yz9zN7r9klYsIeDA528dIokujjac1YmRrbPHhGhdcv8oEC3rdBdQykFDP06En/pQA2hPh0bBa6Gvq+bhCegUc38ctjuzO4IaCQQhAtMKbz3EQeNPIsdV2V0CDCmmoNlELrp9W5QuLSvZHGXsWbpDz13e+jFwbQkSL42wzPTp9rBDdtf1evP0GLdQdKcr9EJUcf4Sv5Y0ATeqrI7rWLZll6l5qP3SAO2nfJRzYYxp21j7PVLvgBvzYHMSZVQScua6Z3O4So+tg9PGwLrbEPbVoUSMZYRRfjYL8fQ0E1md5YqeX8xOgL7+FvN9tM7fo8YxefS/vbZQ00Emm6IJzxRv0yLPqh41MQ0lFhWbs8yklV0CL2qa8AGXH5a6yW77vkQ+kWPm41gx3F1EK3AXBw+k3Q74tRVCJNnWqCicFN3SBT+va+3XxKynN1QBiGOJPN+6Zb0mEoUimyI1M5JabU7XqCp3Gl1v0hrXDusHzeHAMi7aX5XT1B35kcrvSAXk7oRKUCK/F83kE8m9tfzQ0pD69x6YqFTu6HO4NWKxnL5mUR8yBHi7+fGx3zTSO1vkC23lOIu2+qjxJHbWdB9+WIAswTvP3Iv42uSM5JyOL5taZtuR0GfBqCJVWhJSR2C9O8ORvyOyliYGvGM08oqns+clUcLx8GF3SjXoIYe0ju+hr1H45HrWsTJt3LFMKSVKRSyQOJR+ziQRBFpP4Oc8fq6c/PcCJRuN0fLfWlfT6GQCPZYeDOHd4qnp4yT4WDHi0FqEpHe3y/5Bh18gNWo85530Y7S/VLmQ2aCBeexuTVSG/RaLJ78Gp1JLEnyt5Nmalw14xZ6eefdwr2e0jFaYT5xw2pIKIvWikNYC5kW6hNmPYci1kGDJjzarryfXbNVZlr9HUb4ZbTRXwcUD6CMUl4i/QaiVMmurJMlbwPLpWHz2HSa7tMSgOCJe8emVFSmrhS3ZUoiOlVU0CCnejhquee4Av3NBVKJ5FEC8BooCZRMxsFlgaOtcMSxPryi40NUF+Nu1PEG+Y/L88rVN3M/SeGUm3/LkT9fIFzbGlSQBMpx3H6P2hgCQKFUDiZxKXheMX58Ke9xjlw3xqm19Oy01GXgFz1douQeAmcsLM9AGTISWOcY9ET4TcxDJ6QfZgnlWgslRPnVscufgVoRPQKtONxFPC+1aB79Vzc4lka3yRDkPcMsQm1B4xefQgjAqCUVjBJrARjCm1br6j05UJvjkNhbsgUQHZXd3684rXStiZE8qtclGzyK84cCZGSZluTpR6f93/Ich9+aqL7YSRfdAfv7xJXZ7/HNgVf0tDi6k1OaI78vHNuxuuKuvbBUBQacDaLnjwzGunrUK2PeNWx+2UqYma8tHqOO/9RAiZ///tqOesN01faCxDyl4oXQ5AMAwnqAtCjt51dYc1h3aUBxVoOEItbnphNzRAS+r8z9gGBmcL6okEqJnT8LEK+W/A1Ade52T4ezeGguapEOifoiZ0Lkb1my+ILiiku0avIEYhWMis6h3hWGgy7rZu66e8SrCUmbRU34650/T9m+jnd1OyjXSUKoW1Mr2yrWeIZDhtXUcCNjJeYLa/htqQc0hr3vTMiiH6l/YdcoM1ovTdUHz7gtDhDOITBZqDeX3Zr2Iv1V9T0bLoWRTWmP9yHknu02nRPNpZWShcXaI7R/9XL4Z3ccdEU/z53QX4U2XEa9XvASqqC5INNQiOvdRK6L7udxBJr4mJuJzjEBu5uVvnSBFuA3WCLkkbLpw5BLCTneLgtYTacL3tgwuww/N0t8Q2vkiOw+wgxOX810+lkf0XGn0z2ltggsqIn8CYlIGv+quTjFE8iD8nrXCocEhCd3LjB2ZkSM/3YZb+MBFgvc5lxO6iisU6b7yBKcKpe1ojLg5PO75icaV3KFkyadD8kc4bChHnghn5UDJ4klOtoXXhvzaYuX0+UWfqGvHD9/M6Bp/xXQ4cOcasa0/Tcglqxoft1izou+Jxcpl1KJlL0cXY6AUJtjitZITzoR5lQdtLSkU49nSb3nbe0a759yNO80Usm3e7cT3YjXwPl8+RiQCLoiipoQaiZU6xT4KcxzT6UnTng3QED7Ie+I2+t60bnW6WYiKBC1yNOFAvmpXDa2ZPpSkv5JSSJRraOGb800Ye9Z6XFbLivDGACjy+fgizPFJ/gxG8hCdEsxL++Z36XWSUc0WCtp4822GA/X1ACbSRb7o/dFOmdg/movUPsccq2RmGV25ZXcD3lAPdDF/yamCtI+SUbA4AaynCsmaIFqb2PeztOVyoippruZEHfwIIaw3P/a/J9tLv8rp4GtB3vHGwvXtqLJ+Dtg7Mmyfe/VGMIGBcZdO9Ud0XhOB3kwZRgqAcpChQVSVSFo83FAPOBQ9kV8FQSP+NPXR9xWc7/ERc/SQ/N+KDG9+X0pDGDIQVtYbo2XO18G1tYFCnyT4B3YMNCsmuc41L8wkOfb8z5ZPbJAohsTkUjVPIcEX+xck45RubeOdXxP1dTvRKZZSh6hcHCyySaHWu4gABhvD3HjoBBJQwKzsLZUvVSzcM9xSjfYeX96+SVe2zRWeIJDvwUNCM50NGGjg56BeWaCx45GrnDIQ2W2Vreh2M3/r5glwGReZKCfsapeNgJTqcJyvvRhLm+uUT0BHxMWBCg0y9r7VNWh0WXiirpKGQs6W+fdln9MljYhF1ByGBZAxx9sR4tpN5+hLqkGGl0iwkmynsCRyJq0GUghJQ3M5jz6u+eRarlD24OBNuGL2cy/CetAHTry/ds64ZkXuGm0UVMIErliU0O7in/jlq656bvnKEjOoYKKBJJ/CPgLgyzhIJZk5rSbhHG19x2joqQOrwstzv6iMd7Q1vVYe5jYdZ8ruv3w6+GoE8p+oIeIrPzzSLrqsMaS+hEouw6YsSDmCLIDAD1s8y3JIUUD8oEIFleg3qyGqUwuw0PJVFeH11/L0dwyACILif4xbHJ0VITgpCdmB0hDy7mrlJMKEIrWA/B+nkNNKmE1+qlOR/Q8TbFl/KMLxUleCgzZUk28uMBhBlYQt+QHBtBr9EQYypVzn2EnKeNlKnDZNM8S8rExsqulyB48RqQheONw+ySY4YKWOgb6/tLNOrXY5033LB0JdHOlXKNn9z6yh5jpyraApp64xjiyJuBvE1ppAuC+qdwD+O2GrrjmbVGoJXnhoinjgHHBR8w4v/C56LpODEKCw+yVCxEw3zFTurxJI0eKq+Q41GE2ryxTyY3MZVa3uQq5jK9fQMB5VurrVg265/dgj9c366dZ6yzfGl81G0u3k0XbrmLQ3WujnCLDoZfcnEve6aED18CGqWnf/UqK3DIBBv3foaO4rRSbwRBTkG02WEn3QsSQPmfb4/YeU7RBNQ/0oeFXNnuI5S+87iGk6qB1uRqRnZ0GdVM3pVdcAV2DNrmVDffzzUZNQi+s8/nV9tKL+KuvB4ucP7eHDiIdzfdTWI5D2YE2AmtHU0JGKu2aSvPbQm6kb5oEm5UxgbUsVykUwspiyE78vjISf4O+U/DFLuh4YbvYdW9w+CAr8E2XHC+0uvxGlCl5cG8JrVFt6Y7s29QbLhE/vwXTyOzlu9FR5c4DMbxOiMuRwewf3elWU+wlF1pOJSSqu7ySGhjEJfT+x40BWFb1dGDhgETGHx/XostKbvY2hWJbYzLmp0J8NHDnx0iAG9E5pW9rvJV0jG5wryR3Pb4AYnHRf+G2Rw7eWQljg3RKxajD1GAdbxnkdKYiuXUlIzE+J67AHvuJOr444DmDGQszucdHScdciDhga89pgrDMAeSXvBtiq8T0xqJccwqaB8FFTn5Ot6bT8rFlLEY/NpsrNBPcO9UHCTKeM1gXHQDxQ50u1SBhgPbDeTE5FnXzcdOKkDExsQDyt+w+7hyj+SjHAEPixoFxUg8IFDjXqjg4Qo22Z0sE0HvqLE9d9LlJigIC4yU1Zf45au+Chmahh3GJ51wbgLUNWtBx5N+2gpCDPIYJsnAtBItWNIMIh/SWJkUaelllgF35uf0zon6XmDTpvTZEMVKcYvT9MmM9r8D6hrXu4NnhtAKjrvDKnkxW9gW3l2SDXBNEO4sRLzUMnoS9H+PmybTmB2ruMWHz1O/wTlr5jO+7Ou7r+Kh7NQkYoy3QIyZ+Ro/z5BW0QYUdEPyMs1/PHSghx/MAqknivxizQb1VWIOp5ArxcI0p5WW7xx5CbkMO0T94F9Fr2haG970GQ89XCV81nEZ/sUtui6UWsaI8TQpsl0kk3b3v34UY58ZcmvOopHcyRt7uSpcuH2wpr9hk7njlLJlkQo53e4tk7P0Bmgg/ZOevf/VjLQXVUbMcpYOROCR7XtCwm+HewDYy5f4da5S0dxSOX1UXjGZ7aI4gJerbEXcBFZaYEr/AQXgfFvUkLpH/urade06ycRh3w9gpufocFLUtg1jWPFwHxnJDwgISTc4HML6J1KO+clNZ4YyPb1uE/3Vh1QxIP2sjS2EtJ/XrOeHmHwTSP2wqmamioSFqz/CiRWR6u0A8lKqOlLEI7i23HlZaKp2AOabz8cILtoEkwnyXKVuYtTTYebUU6bKZdhvG+gSXMIQYSHpuD1EhavvAQ3l+iWboQUVX881o/40qn6iy+Pbk2G8eivELNqB3cMosX6bOLrZAjyW3Zb3mgL13MJZCKhH5mtqZoHjyVWnlHyaI0cuuZH1PUc8FEuRJSW+5doAWZgW0PQEW+S6RqGV9lGk+4bKG3vwx27SAZmaaLrcbUv0meqOK+y+1mQNVzkkz8M8tzq4aPGxFq5tSL6H91Cyo09GWg4FMi6UTsFxAxFqqqY1izYxewf4NSjTyyibf8SvxqBmyIEKiXLKysmVbj7Vp7gTp4AVwZs3D0wKvfNZzRPOg3mx7pcQExGi2e1TUBipYkoLbWd4pnhJswjT7H+jkbgo5Xm59cFHMVwrYRm0b+loOybpL4iTWRC5T3zk3/lFQ6UhIRGj7v8RbWcayQrLjFxec0Dew3CQ+aCh/ASTdhPyDeFpf/TgsFR0xtiDCB2X0vtP+6bH5U2Foujp1hIycCsHrMEssjUQdEXsdlMC2JPnrBoDHfOVyATmeqjPjhJpbww9HS3vWj4wkBsiovDQG4KdF6w3Lnx/HIe2KAIB+sGnLjVX4it+byU33F9yvuhgEkp0LvpouG5jMkqZHpDMsZFLBguJ/X8fEH3ONHddjggjmUQfUuo6T2uzgei0cCOV0vk+rfXsdIp9ieVVbaf8jbzSmdY9AWtHrT4nJC65HF76PkCriv0vSNRU1heeO609XMBLdRs4mopg==\"}" +} \ No newline at end of file diff --git a/backend/src/db/api/booking_requests.js b/backend/src/db/api/booking_requests.js index af97b16..b9925a8 100644 --- a/backend/src/db/api/booking_requests.js +++ b/backend/src/db/api/booking_requests.js @@ -18,6 +18,9 @@ module.exports = class Booking_requestsDBApi { start_date: data.start_date || null, end_date: data.end_date || null, status: data.status || null, + guest_name: data.guest_name || null, + guest_company: data.guest_company || null, + guest_phone: data.guest_phone || null, importHash: data.importHash || null, createdById: currentUser.id, updatedById: currentUser.id, @@ -47,6 +50,9 @@ module.exports = class Booking_requestsDBApi { start_date: item.start_date || null, end_date: item.end_date || null, status: item.status || null, + guest_name: item.guest_name || null, + guest_company: item.guest_company || null, + guest_phone: item.guest_phone || null, importHash: item.importHash || null, createdById: currentUser.id, updatedById: currentUser.id, @@ -83,6 +89,15 @@ module.exports = class Booking_requestsDBApi { if (data.status !== undefined) updatePayload.status = data.status; + if (data.guest_name !== undefined) + updatePayload.guest_name = data.guest_name; + + if (data.guest_company !== undefined) + updatePayload.guest_company = data.guest_company; + + if (data.guest_phone !== undefined) + updatePayload.guest_phone = data.guest_phone; + updatePayload.updatedById = currentUser.id; await booking_requests.update(updatePayload, { transaction }); @@ -252,6 +267,39 @@ module.exports = class Booking_requestsDBApi { }; } + if (filter.guest_name) { + where = { + ...where, + [Op.and]: Utils.ilike( + 'booking_requests', + 'guest_name', + filter.guest_name, + ), + }; + } + + if (filter.guest_company) { + where = { + ...where, + [Op.and]: Utils.ilike( + 'booking_requests', + 'guest_company', + filter.guest_company, + ), + }; + } + + if (filter.guest_phone) { + where = { + ...where, + [Op.and]: Utils.ilike( + 'booking_requests', + 'guest_phone', + filter.guest_phone, + ), + }; + } + if (filter.calendarStart && filter.calendarEnd) { where = { ...where, diff --git a/backend/src/db/migrations/1749478909057.js b/backend/src/db/migrations/1749478909057.js new file mode 100644 index 0000000..dc09239 --- /dev/null +++ b/backend/src/db/migrations/1749478909057.js @@ -0,0 +1,49 @@ +module.exports = { + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async up(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.addColumn( + 'booking_requests', + 'guest_name', + { + type: Sequelize.DataTypes.TEXT, + }, + { transaction }, + ); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async down(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.removeColumn('booking_requests', 'guest_name', { + transaction, + }); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, +}; diff --git a/backend/src/db/migrations/1749478955263.js b/backend/src/db/migrations/1749478955263.js new file mode 100644 index 0000000..8ad66c4 --- /dev/null +++ b/backend/src/db/migrations/1749478955263.js @@ -0,0 +1,49 @@ +module.exports = { + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async up(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.addColumn( + 'booking_requests', + 'guest_company', + { + type: Sequelize.DataTypes.TEXT, + }, + { transaction }, + ); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async down(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.removeColumn('booking_requests', 'guest_company', { + transaction, + }); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, +}; diff --git a/backend/src/db/migrations/1749478987318.js b/backend/src/db/migrations/1749478987318.js new file mode 100644 index 0000000..ea9e18a --- /dev/null +++ b/backend/src/db/migrations/1749478987318.js @@ -0,0 +1,49 @@ +module.exports = { + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async up(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.addColumn( + 'booking_requests', + 'guest_phone', + { + type: Sequelize.DataTypes.TEXT, + }, + { transaction }, + ); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, + /** + * @param {QueryInterface} queryInterface + * @param {Sequelize} Sequelize + * @returns {Promise} + */ + async down(queryInterface, Sequelize) { + /** + * @type {Transaction} + */ + const transaction = await queryInterface.sequelize.transaction(); + try { + await queryInterface.removeColumn('booking_requests', 'guest_phone', { + transaction, + }); + + await transaction.commit(); + } catch (err) { + await transaction.rollback(); + throw err; + } + }, +}; diff --git a/backend/src/db/models/booking_requests.js b/backend/src/db/models/booking_requests.js index ff9db2c..ab0847e 100644 --- a/backend/src/db/models/booking_requests.js +++ b/backend/src/db/models/booking_requests.js @@ -28,6 +28,18 @@ module.exports = function (sequelize, DataTypes) { values: ['Pending', 'Confirmed', 'Rejected'], }, + guest_name: { + type: DataTypes.TEXT, + }, + + guest_company: { + type: DataTypes.TEXT, + }, + + guest_phone: { + type: DataTypes.TEXT, + }, + importHash: { type: DataTypes.STRING(255), allowNull: true, diff --git a/backend/src/db/seeders/20231127130745-sample-data.js b/backend/src/db/seeders/20231127130745-sample-data.js index 74bc700..702fadd 100644 --- a/backend/src/db/seeders/20231127130745-sample-data.js +++ b/backend/src/db/seeders/20231127130745-sample-data.js @@ -15,7 +15,13 @@ const BookingRequestsData = [ end_date: new Date('2023-11-05T11:00:00Z'), - status: 'Rejected', + status: 'Confirmed', + + guest_name: 'Max von Laue', + + guest_company: 'Isaac Newton', + + guest_phone: 'B. F. Skinner', }, { @@ -28,6 +34,12 @@ const BookingRequestsData = [ end_date: new Date('2023-11-15T11:00:00Z'), status: 'Pending', + + guest_name: 'Erwin Schrodinger', + + guest_company: 'John Bardeen', + + guest_phone: 'John Bardeen', }, { @@ -40,6 +52,48 @@ const BookingRequestsData = [ end_date: new Date('2023-11-25T11:00:00Z'), status: 'Confirmed', + + guest_name: 'Linus Pauling', + + guest_company: 'Antoine Laurent Lavoisier', + + guest_phone: 'Edwin Hubble', + }, + + { + // type code here for "relation_one" field + + // type code here for "relation_one" field + + start_date: new Date('2023-12-01T14:00:00Z'), + + end_date: new Date('2023-12-05T11:00:00Z'), + + status: 'Rejected', + + guest_name: 'Charles Darwin', + + guest_company: 'Frederick Sanger', + + guest_phone: 'Carl Linnaeus', + }, + + { + // type code here for "relation_one" field + + // type code here for "relation_one" field + + start_date: new Date('2023-12-10T14:00:00Z'), + + end_date: new Date('2023-12-15T11:00:00Z'), + + status: 'Pending', + + guest_name: 'Max Delbruck', + + guest_company: 'Trofim Lysenko', + + guest_phone: 'Louis Victor de Broglie', }, ]; @@ -49,23 +103,39 @@ const RoomsData = [ room_number: 101, + bed_type: 'Bed-1', + }, + + { + block: 'Block 1', + + room_number: 102, + + bed_type: 'Bed-1', + }, + + { + block: 'Block 1', + + room_number: 102, + + bed_type: 'Bed-1', + }, + + { + block: 'Block 2', + + room_number: 201, + bed_type: 'SingleBed', }, { - block: 'Block 1', + block: 'Block 2', - room_number: 102, + room_number: 201, - bed_type: 'Bed-1', - }, - - { - block: 'Block 1', - - room_number: 102, - - bed_type: 'Bed-1', + bed_type: 'Bed-2', }, ]; @@ -104,6 +174,28 @@ async function associateBookingRequestWithGuest() { if (BookingRequest2?.setGuest) { await BookingRequest2.setGuest(relatedGuest2); } + + const relatedGuest3 = await Users.findOne({ + offset: Math.floor(Math.random() * (await Users.count())), + }); + const BookingRequest3 = await BookingRequests.findOne({ + order: [['id', 'ASC']], + offset: 3, + }); + if (BookingRequest3?.setGuest) { + await BookingRequest3.setGuest(relatedGuest3); + } + + const relatedGuest4 = await Users.findOne({ + offset: Math.floor(Math.random() * (await Users.count())), + }); + const BookingRequest4 = await BookingRequests.findOne({ + order: [['id', 'ASC']], + offset: 4, + }); + if (BookingRequest4?.setGuest) { + await BookingRequest4.setGuest(relatedGuest4); + } } async function associateBookingRequestWithRoom() { @@ -139,6 +231,28 @@ async function associateBookingRequestWithRoom() { if (BookingRequest2?.setRoom) { await BookingRequest2.setRoom(relatedRoom2); } + + const relatedRoom3 = await Rooms.findOne({ + offset: Math.floor(Math.random() * (await Rooms.count())), + }); + const BookingRequest3 = await BookingRequests.findOne({ + order: [['id', 'ASC']], + offset: 3, + }); + if (BookingRequest3?.setRoom) { + await BookingRequest3.setRoom(relatedRoom3); + } + + const relatedRoom4 = await Rooms.findOne({ + offset: Math.floor(Math.random() * (await Rooms.count())), + }); + const BookingRequest4 = await BookingRequests.findOne({ + order: [['id', 'ASC']], + offset: 4, + }); + if (BookingRequest4?.setRoom) { + await BookingRequest4.setRoom(relatedRoom4); + } } module.exports = { diff --git a/backend/src/routes/booking_requests.js b/backend/src/routes/booking_requests.js index 5e530a8..8dc38c4 100644 --- a/backend/src/routes/booking_requests.js +++ b/backend/src/routes/booking_requests.js @@ -20,6 +20,16 @@ router.use(checkCrudPermissions('booking_requests')); * type: object * properties: + * guest_name: + * type: string + * default: guest_name + * guest_company: + * type: string + * default: guest_company + * guest_phone: + * type: string + * default: guest_phone + * */ @@ -307,7 +317,15 @@ router.get( currentUser, }); if (filetype && filetype === 'csv') { - const fields = ['id', 'start_date', 'end_date']; + const fields = [ + 'id', + 'guest_name', + 'guest_company', + 'guest_phone', + + 'start_date', + 'end_date', + ]; const opts = { fields }; try { const csv = parse(payload.rows, opts); diff --git a/backend/src/services/search.js b/backend/src/services/search.js index 408a0c8..408a1fe 100644 --- a/backend/src/services/search.js +++ b/backend/src/services/search.js @@ -43,6 +43,8 @@ module.exports = class SearchService { const tableColumns = { users: ['firstName', 'lastName', 'phoneNumber', 'email'], + booking_requests: ['guest_name', 'guest_company', 'guest_phone'], + rooms: ['block'], }; const columnsInt = { diff --git a/frontend/json/runtimeError.json b/frontend/json/runtimeError.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/frontend/json/runtimeError.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/frontend/src/components/Booking_requests/CardBooking_requests.tsx b/frontend/src/components/Booking_requests/CardBooking_requests.tsx index b969545..1778feb 100644 --- a/frontend/src/components/Booking_requests/CardBooking_requests.tsx +++ b/frontend/src/components/Booking_requests/CardBooking_requests.tsx @@ -129,6 +129,39 @@ const CardBooking_requests = ({ + +
+
+ Guest name +
+
+
+ {item.guest_name} +
+
+
+ +
+
+ Guest company +
+
+
+ {item.guest_company} +
+
+
+ +
+
+ Guest phone +
+
+
+ {item.guest_phone} +
+
+
))} diff --git a/frontend/src/components/Booking_requests/ListBooking_requests.tsx b/frontend/src/components/Booking_requests/ListBooking_requests.tsx index dffd364..326db66 100644 --- a/frontend/src/components/Booking_requests/ListBooking_requests.tsx +++ b/frontend/src/components/Booking_requests/ListBooking_requests.tsx @@ -86,6 +86,23 @@ const ListBooking_requests = ({

Status

{item.status}

+ +
+

Guest name

+

{item.guest_name}

+
+ +
+

+ Guest company +

+

{item.guest_company}

+
+ +
+

Guest phone

+

{item.guest_phone}

+
state.style.borders); const websiteHeder = useAppSelector((state) => state.style.websiteHeder); - const style = FooterStyle.WITH_PROJECT_NAME; + const style = FooterStyle.WITH_PAGES; const design = FooterDesigns.DEFAULT_DESIGN; diff --git a/frontend/src/components/WebPageComponents/Header.tsx b/frontend/src/components/WebPageComponents/Header.tsx index c35aef0..4a6c626 100644 --- a/frontend/src/components/WebPageComponents/Header.tsx +++ b/frontend/src/components/WebPageComponents/Header.tsx @@ -17,7 +17,7 @@ export default function WebSiteHeader({ projectName }: WebSiteHeaderProps) { const websiteHeder = useAppSelector((state) => state.style.websiteHeder); const borders = useAppSelector((state) => state.style.borders); - const style = HeaderStyle.PAGES_LEFT; + const style = HeaderStyle.PAGES_RIGHT; const design = HeaderDesigns.DESIGN_DIVERSITY; return ( diff --git a/frontend/src/pages/booking_requests/[booking_requestsId].tsx b/frontend/src/pages/booking_requests/[booking_requestsId].tsx index 12f8e94..b81db33 100644 --- a/frontend/src/pages/booking_requests/[booking_requestsId].tsx +++ b/frontend/src/pages/booking_requests/[booking_requestsId].tsx @@ -48,6 +48,12 @@ const EditBooking_requests = () => { end_date: new Date(), status: '', + + guest_name: '', + + guest_company: '', + + guest_phone: '', }; const [initialValues, setInitialValues] = useState(initVals); @@ -174,6 +180,18 @@ const EditBooking_requests = () => { + + + + + + + + + + + + diff --git a/frontend/src/pages/booking_requests/booking_requests-edit.tsx b/frontend/src/pages/booking_requests/booking_requests-edit.tsx index 9ebd49d..cfc25f9 100644 --- a/frontend/src/pages/booking_requests/booking_requests-edit.tsx +++ b/frontend/src/pages/booking_requests/booking_requests-edit.tsx @@ -48,6 +48,12 @@ const EditBooking_requestsPage = () => { end_date: new Date(), status: '', + + guest_name: '', + + guest_company: '', + + guest_phone: '', }; const [initialValues, setInitialValues] = useState(initVals); @@ -172,6 +178,18 @@ const EditBooking_requestsPage = () => { + + + + + + + + + + + + diff --git a/frontend/src/pages/booking_requests/booking_requests-list.tsx b/frontend/src/pages/booking_requests/booking_requests-list.tsx index 732b680..a162612 100644 --- a/frontend/src/pages/booking_requests/booking_requests-list.tsx +++ b/frontend/src/pages/booking_requests/booking_requests-list.tsx @@ -32,6 +32,10 @@ const Booking_requestsTablesPage = () => { const dispatch = useAppDispatch(); const [filters] = useState([ + { label: 'Guest name', title: 'guest_name' }, + { label: 'Guest company', title: 'guest_company' }, + { label: 'Guest phone', title: 'guest_phone' }, + { label: 'StartDate', title: 'start_date', date: 'true' }, { label: 'EndDate', title: 'end_date', date: 'true' }, diff --git a/frontend/src/pages/booking_requests/booking_requests-new.tsx b/frontend/src/pages/booking_requests/booking_requests-new.tsx index 7ab5801..c15aebd 100644 --- a/frontend/src/pages/booking_requests/booking_requests-new.tsx +++ b/frontend/src/pages/booking_requests/booking_requests-new.tsx @@ -33,14 +33,11 @@ import { useRouter } from 'next/router'; import moment from 'moment'; const initialValues = { - guest: '', - - room: '', - + guest_name: '', + guest_company: '', + guest_phone: '', start_date: '', - end_date: '', - status: 'Pending', }; @@ -86,25 +83,6 @@ const Booking_requestsNew = () => { - - - - - - - - { + + + + + + + + + + + + diff --git a/frontend/src/pages/booking_requests/booking_requests-table.tsx b/frontend/src/pages/booking_requests/booking_requests-table.tsx index 58bf80e..de44f2b 100644 --- a/frontend/src/pages/booking_requests/booking_requests-table.tsx +++ b/frontend/src/pages/booking_requests/booking_requests-table.tsx @@ -32,6 +32,10 @@ const Booking_requestsTablesPage = () => { const dispatch = useAppDispatch(); const [filters] = useState([ + { label: 'Guest name', title: 'guest_name' }, + { label: 'Guest company', title: 'guest_company' }, + { label: 'Guest phone', title: 'guest_phone' }, + { label: 'StartDate', title: 'start_date', date: 'true' }, { label: 'EndDate', title: 'end_date', date: 'true' }, diff --git a/frontend/src/pages/booking_requests/booking_requests-view.tsx b/frontend/src/pages/booking_requests/booking_requests-view.tsx index d489dee..44e2b42 100644 --- a/frontend/src/pages/booking_requests/booking_requests-view.tsx +++ b/frontend/src/pages/booking_requests/booking_requests-view.tsx @@ -115,6 +115,21 @@ const Booking_requestsView = () => {

{booking_requests?.status ?? 'No data'}

+
+

Guest name

+

{booking_requests?.guest_name}

+
+ +
+

Guest company

+

{booking_requests?.guest_company}

+
+ +
+

Guest phone

+

{booking_requests?.guest_phone}

+
+ { EndDate Status + + Guest name + + Guest company + + Guest phone @@ -107,6 +113,14 @@ const RoomsView = () => { {item.status} + + {item.guest_name} + + + {item.guest_company} + + + {item.guest_phone} ))} diff --git a/frontend/src/pages/users/users-view.tsx b/frontend/src/pages/users/users-view.tsx index a39acef..fda6ae1 100644 --- a/frontend/src/pages/users/users-view.tsx +++ b/frontend/src/pages/users/users-view.tsx @@ -153,6 +153,12 @@ const UsersView = () => { EndDate Status + + Guest name + + Guest company + + Guest phone @@ -176,6 +182,14 @@ const UsersView = () => { {item.status} + + {item.guest_name} + + + {item.guest_company} + + + {item.guest_phone} ))} diff --git a/frontend/src/pages/web_pages/services.tsx b/frontend/src/pages/web_pages/services.tsx index 6bd9ddf..a411d67 100644 --- a/frontend/src/pages/web_pages/services.tsx +++ b/frontend/src/pages/web_pages/services.tsx @@ -74,7 +74,7 @@ export default function WebSite() {